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:

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

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:

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.