WPML

Запрос контента по языкам с Вашего фронтенда

Каждый запрос WPGraphQL получает аргумент language. Фильтруйте записи, произвольные типы записей, элементы таксономии, меню, пункты меню и комментарии по языку в одном поле — никакой пост-фильтрации на фронтенде, никакого удвоения объема запросов и угадывания языка.

query PostsES {
  posts(where: { language: "es" }) {
    nodes { slug uri title }
  }
}

Когда Вы фильтруете узел верхнего уровня по языку, связанные элементы (рубрики, метки, произвольные таксономии) автоматически следуют тому же языку. Результаты остаются согласованными без дополнительных аргументов для каждого вложенного поля.

Хотите получить все данные независимо от языка для XML-карты сайта или общего подсчета? Передайте language: "all".

Получение всех переводов узла в одном запросе

Поле translations в записях и элементах таксономии возвращает все версии узла на других языках: слаг, URI, код языка и любые запрошенные Вами вложенные поля. Один запрос, один цикл обращения, все языковые версии страницы.

Это те самые данные, которые нужны Вам для переключателя языков, отображаемого рядом с контентом страницы, без необходимости заставлять фронтенд выполнять цепочку связанных запросов.

Мультиязычные меню, таксономии, комментарии и языковые данные

Помимо записей, WPML GraphQL распространяет тот же аргумент language и обработку переводов на:

  • Меню и пункты меню. menu(language: "fr") для навигации по каждому языку. Добавлено в WPML GraphQL 1.1.0.
  • Элементы таксономии. Рубрики, метки и произвольные таксономии по умолчанию следуют языку своей записи и могут запрашиваться напрямую для каждого языка.
  • Комментарии. Возвращайте комментарии, связанные с записями на определенном языке.
  • Запросы languages и defaultLanguage. Выводите список всех установленных языков на сайте с кодом, локалью, родным названием, URL-адресом флага страны и URL-адресом главной страницы. Подходящая структура данных для пользовательского переключателя языков.

Запрос конкретной записи по ID или слагу на любом языке

Две формы запроса позволяют получить одну переведенную запись по ее языковому идентификатору:

query PostBySlug {
  post(id: "hola-mundo", idType: SLUG) {
    title slug uri
  }
}
query PostById {
  post(id: "2", idType: DATABASE_ID) {
    title slug uri
  }
}

Любая из форм возвращает переведенную запись с ее переведенным заголовком, слагом и URI — без отдельной логики «это перевод?» на фронтенде.

Поддержка текущего релиза WPGraphQL

WPML GraphQL 1.1.3 протестирован вплоть до WPGraphQL 2.0.0 — основной ветки релизов проекта WPGraphQL. Команда, поддерживающая WPGraphQL, работает с нами, чтобы мультиязычный слой продолжал развиваться вместе со схемой. Когда WPGraphQL выпускает новый релиз, WPML GraphQL обновляется вслед за ним.

Работает с ACF при добавлении ACFML и WPGraphQL for ACF

Для сайтов, которые строят свои модели контента в Advanced Custom Fields и предоставляют эти поля через WPGraphQL, WPML GraphQL работает совместно с ACFML и WPGraphQL for ACF, добавляя аргумент language к запросам страницы параметров ACF:

query Settings {
  myOptionPage(language: "de") {
    addressFieldGroup {
      addressTitle
      repeaterAddressDetails { addressDetails }
    }
  }
}

Поля ACF в записях и произвольных типах записей автоматически следуют языку основной записи.

WPML GraphQL включен в WPML

WPML GraphQL поставляется с Multilingual CMS и WPML Agency. Никаких отдельных покупок и платы за каждый сайт. Купите WPML один раз, и Ваш мультиязычный headless-стек получит свой языковой слой. Если у Вас уже есть WPML, активируйте WPML GraphQL на Вашей странице загрузок WPML.