Zaawansowane
ZaawansowaneTworzenie Pomocniczych Queries

Tworzenie Pomocniczych Queries

Podczas pracy z tłumaczeniami możesz napotkać różne sytuacje, w których musisz zidentyfikować, przeanalizować lub przetworzyć określone treści w swojej witrynie. Na przykład:

  • Wyszukiwanie postów zawierających określony blok Gutenberg, którego nie można przetłumaczyć
  • Identyfikowanie postów z uszkodzonymi lub nieprawidłowymi danymi
  • Lokalizowanie treści wymagających ręcznego przeglądu lub migracji
  • Pobieranie list postów, stron lub innych typów treści do operacji wsadowych

Ponieważ Gato AI Translations for Polylang działa na bazie Gato GraphQL, możesz wygodnie używać tego narzędzia do tworzenia niestandardowych queries GraphQL umożliwiających wyszukiwanie, filtrowanie i pobieranie informacji z Twojej witryny WordPress.

Włączanie Trybu Zaawansowanego

Aby wykonywać queries GraphQL, musisz najpierw włączyć Tryb Zaawansowany w ustawieniach wtyczki.

Przejdź do Ustawienia > Konfiguracja Wtyczki > Zaawansowane Użycie i wybierz Włącz Tryb Zaawansowany:

Włączanie trybu zaawansowanego
Włączanie trybu zaawansowanego

Po włączeniu niestandardowy typ postu Queries stanie się dostępny w menu administracyjnym WordPress:

CPT Queries włączone
CPT Queries włączone

Przejdź do Queries w menu administracyjnym WordPress i dodaj nowy wpis. Nadaj mu opisowy tytuł, który jasno wskazuje, co dana query robi.

Przykłady

Znajdowanie Postów Zawierających Określony Blok

Częstym przypadkiem użycia jest identyfikowanie postów zawierających określony blok Gutenberg, którego nie można przetłumaczyć. Ta query pomaga zlokalizować wszystkie posty wymagające migracji do innego, możliwego do przetłumaczenia bloku.

Utwórz nowy wpis z tytułem Find posts containing a certain block i użyj tej 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
  }
}

Zauważ, że możemy dostarczać zmienne do query, dzięki czemu można ją wielokrotnie wykorzystywać dla różnych bloków.

Na przykład, aby znaleźć posty zawierające blok FAQ Yoast, ustaw zmienne GraphQL na:

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

Następnie wykonaj query:

Wykonywanie query GraphQL
Wykonywanie query GraphQL

W odpowiedzi możesz zobaczyć listę postów zawierających blok FAQ Yoast. Kliknięcie dowolnego url otworzy post w widoku frontendu, a kliknięcie dowolnego linku wpAdminEditURL otworzy post w edytorze 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"
      }
    ]
  }
}

Naprawianie Błędów Uszkodzonych Danych

Innym częstym przypadkiem użycia jest naprawianie błędów uszkodzonych danych.

Na przykład, jeśli element multimedialny ma odwołanie do nieistniejącego rodzica, wtyczka nie będzie w stanie przetłumaczyć treści. Możesz to naprawić, usuwając odwołanie do rodzica.

Utwórz nowy wpis z tytułem Remove parent reference from media item i użyj tej query:

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

Na przykład, aby naprawić błąd uszkodzonych danych dla elementu multimedialnego o ID 26066, ustaw zmienne GraphQL na:

{
  "mediaItemID": 26066
}

I wykonaj query.