Avançado
AvançadoCriar Queries Auxiliares

Criar Queries Auxiliares

Ao trabalhar com traduções, você pode se deparar com diversas situações em que precisa identificar, analisar ou processar conteúdos específicos no seu site. Por exemplo:

  • Encontrar posts que contêm um bloco Gutenberg específico que não pode ser traduzido
  • Identificar posts com dados corrompidos ou malformados
  • Localizar conteúdo que precisa de revisão manual ou migração
  • Recuperar listas de posts, páginas ou outros tipos de conteúdo para operações em lote

Como o Gato AI Translations for Polylang executa o Gato GraphQL por baixo dos panos, você pode usar esta ferramenta de forma conveniente para criar queries GraphQL personalizadas para buscar, filtrar e recuperar informações do seu site WordPress.

Ativar o Modo Avançado

Para executar queries GraphQL, você deve primeiro ativar o Modo Avançado nas Configurações do plugin.

Acesse Configurações > Configuração do Plugin > Uso Avançado e selecione Ativar o Modo Avançado:

Ativando o modo avançado
Ativando o modo avançado

Após a ativação, o tipo de post personalizado Queries ficará disponível no menu de administração do WordPress:

CPT Queries ativado
CPT Queries ativado

Navegue até Queries no menu de administração do WordPress e adicione uma nova entrada. Dê a ela um título descritivo que indique claramente o que a query faz.

Exemplos

Encontrar Posts que Contêm um Bloco Específico

Um caso de uso comum é identificar posts que contêm um bloco Gutenberg específico que não pode ser traduzido. Esta query ajuda você a localizar todos os posts que precisam ser migrados para um bloco diferente e traduzível.

Crie uma nova entrada com o título Find posts containing a certain block e use esta 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
  }
}

Observe que podemos fornecer variáveis para a query, de modo que ela possa ser reutilizada para blocos diferentes.

Por exemplo, para encontrar posts que contêm o bloco FAQ do Yoast, defina as variáveis GraphQL como:

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

Em seguida, execute a query:

Executando a query GraphQL
Executando a query GraphQL

Na resposta, você pode ver a lista de posts que contêm o bloco FAQ do Yoast. Clicar em qualquer url abrirá o post no frontend, ou clicar em qualquer link wpAdminEditURL abrirá o post no editor do 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"
      }
    ]
  }
}

Corrigir Erros de Dados Corrompidos

Outro caso de uso comum é a correção de erros de dados corrompidos.

Por exemplo, se um item de mídia tiver uma referência de pai inexistente, o plugin falhará ao traduzir o conteúdo. Você pode corrigir isso removendo a referência ao pai.

Crie uma nova entrada com o título Remove parent reference from media item e use esta query:

mutation RemoveParentReferenceFromMediaItem($mediaItemID: ID!) {
  updateMediaItem( input: { id: $mediaItemID, customPostID: null } ) {
    status
    errors {
      __typename
      ...on GenericErrorPayload {
        message
      }
    }
  }
}

Por exemplo, para corrigir o erro de dados corrompidos para o item de mídia com ID 26066, defina as variáveis GraphQL como:

{
  "mediaItemID": 26066
}

E execute a query.