Учебники
УчебникиУзнайте, какие записи содержат определённый блок

Узнайте, какие записи содержат определённый блок

Иногда вы можете столкнуться с блоком Gutenberg, который плагин не может перевести (см. Можно ли переводить все блоки Gutenberg?). В таких случаях вам нужно будет определить все записи, содержащие этот блок, чтобы перенести их в другой, переводимый блок.

Поскольку Gato AI Translations for Polylang использует Gato GraphQL под капотом, вы можете удобно выполнять запросы GraphQL для поиска по вашему контенту.

Чтобы выполнять запросы GraphQL, необходимо сначала включить Advanced Mode и получить доступ к CPT Queries. Инструкции по включению Advanced Mode см. в разделе Создание вспомогательных запросов.

Создание запроса GraphQL

Перейдите в раздел Queries в меню администратора WordPress и добавьте новую запись. Дайте ей описательный заголовок, например «Find posts containing a certain block».

Затем вставьте следующий запрос GraphQL:

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

Перед выполнением запроса необходимо указать переменную blockName. Имя блока имеет формат namespace/block-name.

Например, чтобы найти записи, содержащие блок Yoast FAQ, задайте переменные GraphQL следующим образом:

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

Чтобы узнать точное имя блока, вы можете проверить его в редакторе Gutenberg или обратиться к документации блока.

Выполнение запроса

После установки переменных GraphQL выполните запрос. Ответ будет включать:

  • customPostCount: общее количество записей, содержащих блок
  • customPosts: массив всех найденных записей с их подробными сведениями
Выполнение запроса GraphQL
Выполнение запроса GraphQL

Пример ответа

{
  "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. Затем перейдите к каждой записи и замените проблемный блок переводимой альтернативой.