教程
教程查找包含特定区块的文章

查找包含特定区块的文章

有时您可能会遇到插件无法翻译的 Gutenberg 区块(请参阅所有 Gutenberg 区块都可以翻译吗?)。在这种情况下,您需要找出所有包含该区块的文章,以便将其迁移到另一个可翻译的区块。

由于 Gato AI Translations for Polylang 在底层运行 Gato GraphQL,您可以方便地执行 GraphQL queries 来搜索您的内容。

要执行 GraphQL queries,您必须先启用 Advanced Mode 并访问 Queries CPT。请参阅创建辅助 Queries 了解如何启用 Advanced Mode 的说明。

创建 GraphQL Query

在 WordPress 管理菜单中导航至 Queries,并添加一个新条目。给它起一个描述性标题,例如"Find posts containing a certain block"。

然后,粘贴以下 GraphQL 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
  }
}

设置 GraphQL 变量

在执行 query 之前,您需要提供 blockName 变量。区块名称遵循 namespace/block-name 的格式。

例如,要查找包含 Yoast FAQ 区块的文章,请将 GraphQL 变量设置为:

{
  "blockName": "yoast/faq-block"
}

要找到确切的区块名称,您可以在 Gutenberg 编辑器中检查该区块,或查阅该区块的文档。

执行 Query

设置 GraphQL 变量后,执行 query。响应将包含:

  • customPostCount:包含该区块的文章总数
  • customPosts:所有匹配文章及其详细信息的数组
执行 GraphQL query
执行 GraphQL query

响应示例

{
  "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"
      }
    ]
  }
}

点击任意 wpAdminEditURL 链接可直接在 WordPress 编辑器中打开该文章。然后依次访问每篇文章,将有问题的区块替换为可翻译的替代区块。