⭐️ 发布 v2.6,新增 MultilingualPress 扩展(适用于多语言站点)
Gato GraphQL v2.6 已发布,包含多项新功能。完整的变更列表请查阅 GitHub 上的发布说明。
以下是最重要的新增内容。
[PRO] 新增与 MultilingualPress 的集成
Gato GraphQL PRO 现已与 MultilingualPress 插件集成。
通过新的 MultilingualPress 扩展,GraphQL 模式提供了用于检索多语言数据的字段。
例如,您现在可以运行以下 query:
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 字段
_strRegexFindMatches 字段已添加到 GraphQL 模式(位于 PHP Functions via Schema 扩展下)。
该字段通过执行正则表达式从字符串中提取所有匹配项。例如,运行以下 query:
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 字段
通过「Site」模块,GraphQL 模式新增了以下字段:
Root.siteURL
例如,执行以下 query:
query {
siteURL
}……将产生:
{
"data": {
"siteURL": "https://mysite.com"
}
}新增用于获取多站点数据的字段
GraphQL 模式现在支持通过新的「Multisite」模块从 WordPress 多站点网络获取数据。
该模块向 GraphQL 模式添加了以下字段:
Root.networkSitesRoot.networkSiteCount
networkSites 字段返回包含网络中所有站点的数组,每个站点为新的 NetworkSite 类型,包含以下字段:
idnameurllocalelanguage
这些字段仅在多站点启用时(即 is_multisite() 方法返回 true 时)才会生效。
例如,执行以下 query:
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"
}
]
}
}新增预定义的持久化 Query
Gato GraphQL 新增了以下持久化 Query:
- [PRO] Translate posts for MultilingualPress (Gutenberg)
- [PRO] Translate posts for MultilingualPress (Classic editor)
- [PRO] Translate Poedit file content
[PRO] 新增自动化规则
Gato GraphQL PRO 新增了以下自动化规则:
- MultilingualPress:发布文章时,将其翻译为所有语言(Gutenberg)
- MultilingualPress:发布文章时,将其翻译为所有语言(Classic editor)