Блог

⭐️ Выпущена v2.6 с новым расширением MultilingualPress (для многоязычных сайтов)

Leonardo Losoviz
Автор: Leonardo Losoviz ·

Выпущена Gato GraphQL v2.6, содержащая несколько новых функций. Ознакомьтесь с примечаниями к релизу на GitHub для получения полного списка изменений.

Ниже представлены наиболее важные добавления.

[PRO] Добавлена интеграция с MultilingualPress

Gato GraphQL PRO теперь имеет интеграцию с плагином MultilingualPress.

С новым расширением MultilingualPress схема GraphQL получает поля для извлечения многоязычных данных.

Например, теперь можно выполнить следующий запрос:

query {
  posts {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
 
    categories {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
    
    tags {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
  }
 
  pages {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
  }
  
  customPosts(filter: { customPostTypes: "some-cpt" }) {
    __typename
    ...on GenericCustomPost {
      multilingualpressIsTranslatable
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
      
      categories(taxonomy: "some-category") {
        __typename
        ...on GenericCategory {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
      
      tags(taxonomy: "some-tag") {
        __typename
        ...on GenericTag {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
    }
  }
}
 
fragment MultilingualPressConnectionData {
  siteID
  entityID
}

Благодаря этому дополнению мы можем использовать Gato GraphQL для автоматического перевода записей для плагина MultilingualPress и сохранения этих переводов на соответствующих сайтах в многосайтовой сети WordPress.

Посмотрите видео с демонстрацией Automatically translating posts for MultilingualPress (on a WordPress multisite network), чтобы увидеть, как это работает:

[PRO] Добавлено поле _strRegexFindMatches

В схему GraphQL добавлено поле _strRegexFindMatches (в рамках расширения PHP Functions via Schema).

Это поле выполняет регулярное выражение для извлечения всех совпадений из строки. Например, выполнение следующего запроса:

query {
  _strRegexFindMatches(
    regex: "/https?:\\/\\/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})/",
    string: "In website https://gatographql.com there is more information"
  )
}

...вернёт:

{
  "data": {
    "_strRegexFindMatches": [
      [
        "https:\/\/gatographql.com"
      ],
      [
        "gatographql.com"
      ]
    ]
  }
}

Благодаря этому дополнению мы можем использовать Gato GraphQL для извлечения пустых строк из файла Poedit, перевода их на любой язык и создания соответствующего файла Poedit для этого языка.

Посмотрите видео с демонстрацией Translating all strings in a Poedit file for any language, чтобы увидеть, как это работает:

Добавлено поле siteURL

В схему GraphQL добавлено следующее поле через модуль «Site»:

  • Root.siteURL

Например, выполнение следующего запроса:

query {
  siteURL
}

...вернёт:

{
  "data": {
    "siteURL": "https://mysite.com"
  }
}

Добавлены поля для получения данных многосайтовой сети

Схема GraphQL теперь поддерживает получение данных из многосайтовой сети WordPress, реализованное через новый модуль «Multisite».

Этот модуль добавляет в схему GraphQL следующие поля:

  • Root.networkSites
  • Root.networkSiteCount

Поле networkSites возвращает массив со всеми сайтами в сети, каждый из нового типа NetworkSite, который содержит следующие поля:

  • id
  • name
  • url
  • locale
  • language

Эти поля доступны только при включённом многосайтовом режиме (то есть когда метод is_multisite() возвращает true).

Например, выполнение следующего запроса:

query {
  networkSiteCount
  networkSites {
    id
    name
    url
    locale
    language
  }
}

может вернуть:

{
  "data": {
    "networkSiteCount": 3,
    "networkSites": [
     {
        "id": 1,
        "name": "Site in English",
        "url": "https://mymultisite.com",
        "locale": "en_US",
        "language": "en"
      },
     {
        "id": 2,
        "name": "Site in Spanish",
        "url": "https://es.mymultisite.com",
        "locale": "es_AR",
        "language": "es"
      },
     {
        "id": 3,
        "name": "Site in French",
        "url": "https://fr.mymultisite.com",
        "locale": "fr_FR",
        "language": "fr"
      }
    ]
  }
}

Добавлены предопределённые persisted queries

В Gato GraphQL добавлены следующие persisted queries:

[PRO] Добавлены правила автоматизации

В Gato GraphQL PRO добавлены следующие правила автоматизации:

  • MultilingualPress: При публикации записи перевести её на все языки (Gutenberg)
  • MultilingualPress: При публикации записи перевести её на все языки (Classic editor)

Подпишитесь на нашу рассылку

Будьте в курсе всех обновлений Gato GraphQL.