Geavanceerd
GeavanceerdHulp-queries aanmaken

Hulp-queries aanmaken

Tijdens het werken met vertalingen kun je uiteenlopende situaties tegenkomen waarbij je specifieke content op je site moet identificeren, analyseren of verwerken. Bijvoorbeeld:

  • Posts vinden die een bepaald Gutenberg-blok bevatten dat niet vertaald kan worden
  • Posts identificeren met beschadigde of misvormde gegevens
  • Content opsporen die handmatige controle of migratie vereist
  • Lijsten van posts, pagina's of andere contenttypen ophalen voor batchbewerkingen

Omdat Gato AI Translations for Polylang gebruikmaakt van Gato GraphQL onder de motorkap, kun je dit hulpmiddel handig inzetten om aangepaste GraphQL queries te maken voor het zoeken, filteren en ophalen van informatie van je WordPress-site.

Geavanceerde modus inschakelen

Om GraphQL queries uit te voeren, moet je eerst de Geavanceerde modus inschakelen in de plugin-instellingen.

Ga naar Instellingen > Plugin-configuratie > Geavanceerd gebruik en selecteer Schakel de Geavanceerde modus in:

De geavanceerde modus inschakelen
De geavanceerde modus inschakelen

Zodra dit is ingeschakeld, wordt het aangepaste berichttype Queries beschikbaar in je WordPress-beheermenu:

Queries CPT ingeschakeld
Queries CPT ingeschakeld

Navigeer naar Queries in je WordPress-beheermenu en voeg een nieuw item toe. Geef het een beschrijvende titel die duidelijk aangeeft wat de query doet.

Voorbeelden

Posts vinden die een specifiek blok bevatten

Een veelvoorkomend gebruik is het identificeren van posts die een specifiek Gutenberg-blok bevatten dat niet vertaald kan worden. Deze query helpt je alle posts te vinden die naar een ander, vertaalbaar blok gemigreerd moeten worden.

Maak een nieuw item aan met de titel Find posts containing a certain block en gebruik deze 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
  }
}

Let op dat we variabelen aan de query kunnen meegeven, zodat we deze kunnen hergebruiken voor verschillende blokken.

Om bijvoorbeeld posts te vinden die het Yoast FAQ-blok bevatten, stel je de GraphQL-variabelen als volgt in:

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

Voer daarna de query uit:

De GraphQL query uitvoeren
De GraphQL query uitvoeren

In het antwoord zie je de lijst met posts die het Yoast FAQ-blok bevatten. Door op een url te klikken open je de post in de frontend, of door op een wpAdminEditURL-link te klikken open je de post in de WordPress-editor.

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

Fouten door beschadigde gegevens herstellen

Een ander veelvoorkomend gebruik is het herstellen van fouten door beschadigde gegevens.

Als een media-item bijvoorbeeld een verwijzing naar een niet-bestaande bovenliggende post heeft, zal de plugin er niet in slagen de content te vertalen. Je kunt dit oplossen door de bovenliggende verwijzing te verwijderen.

Maak een nieuw item aan met de titel Remove parent reference from media item en gebruik deze query:

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

Om bijvoorbeeld de fout door beschadigde gegevens te herstellen voor het media-item met ID 26066, stel je de GraphQL-variabelen als volgt in:

{
  "mediaItemID": 26066
}

En voer de query uit.