创建辅助 Queries
在进行翻译工作时,您可能会遇到各种需要识别、分析或处理站点内特定内容的情况。例如:
- 查找包含某个无法翻译的特定 Gutenberg 块的文章
- 识别包含损坏或格式错误数据的文章
- 找到需要人工审核或迁移的内容
- 获取用于批量操作的文章、页面或其他内容类型的列表
由于 Gato AI Translations for Polylang 在底层运行 Gato GraphQL,您可以方便地使用该工具创建自定义 GraphQL queries,以搜索、过滤和检索 WordPress 站点中的信息。
启用高级模式
要执行 GraphQL queries,您必须首先在插件设置中启用高级模式。
前往 设置 > 插件配置 > 高级使用,然后选择启用高级模式:

启用后,Queries 自定义文章类型将在您的 WordPress 管理菜单中显示:

在 WordPress 管理菜单中导航至 Queries 并添加一个新条目。为其起一个能清晰说明该 query 用途的描述性标题。
示例
查找包含特定块的文章
一个常见的使用场景是识别包含无法翻译的特定 Gutenberg 块的文章。该 query 可帮助您找出所有需要迁移到其他可翻译块的文章。
创建一个标题为 Find posts containing a certain block 的新条目,并使用以下 query:
query FindPostsContainingBlock(
$blockName: String!
) {
customPostCount(
filter: {
status: any,
search: $blockName
}
)
customPosts(
filter: {
status: any,
search: $blockName
},
pagination: { limit: -1 }
) {
id
title
customPostType
url
wpAdminEditURL
}
}注意,我们可以向 query 提供变量,因此可以针对不同的块重复使用它。
例如,要查找包含 Yoast FAQ 块的文章,将 GraphQL 变量设置为:
{
"blockName": "yoast/faq-block"
}然后执行该 query:

从响应结果中,您可以看到包含 Yoast FAQ 块的文章列表。点击任意 url 将在前端打开该文章,点击任意 wpAdminEditURL 链接将在 WordPress 编辑器中打开该文章。
{
"data": {
"customPostCount": 6,
"customPosts": [
{
"id": 38602,
"title": "BTS B",
"customPostType": "page",
"url": "https://www.mysite.com/bts-dietetique-b/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=38602&action=edit"
},
{
"id": 38024,
"title": "Merci",
"customPostType": "page",
"url": "https://www.mysite.com/merci/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=38024&action=edit"
},
{
"id": 38633,
"title": "BTS A",
"customPostType": "page",
"url": "https://www.mysite.com/bts-dietetique-a/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=38633&action=edit"
},
{
"id": 34871,
"title": "Collagène marin B",
"customPostType": "page",
"url": "https://www.mysite.com/meilleurs-collagenes-marin/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=34871&action=edit"
},
{
"id": 34853,
"title": "Collagène marin A",
"customPostType": "page",
"url": "https://www.mysite.com/meilleur-collagene-marin/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=34853&action=edit"
},
{
"id": 33987,
"title": "Meilleur collagène en 2025 : l’avis d’un médecin (15 marques)",
"customPostType": "page",
"url": "https://www.mysite.com/meilleur-collagene/",
"wpAdminEditURL": "https://www.mysite.com/wp-admin/post.php?post=33987&action=edit"
}
]
}
}修复损坏的数据错误
另一个常见的使用场景是修复损坏的数据错误。
例如,如果某个媒体项包含一个不存在的父级引用,插件将无法翻译该内容。您可以通过删除父级引用来解决此问题。
创建一个标题为 Remove parent reference from media item 的新条目,并使用以下 query:
mutation RemoveParentReferenceFromMediaItem($mediaItemID: ID!) {
updateMediaItem( input: { id: $mediaItemID, customPostID: null } ) {
status
errors {
__typename
...on GenericErrorPayload {
message
}
}
}
}例如,要修复 ID 为 26066 的媒体项的损坏数据错误,将 GraphQL 变量设置为:
{
"mediaItemID": 26066
}然后执行该 query。