Samouczki
SamouczkiSprawdź, które posty zawierają określony blok

Sprawdź, które posty zawierają określony blok

Czasami możesz natrafić na blok Gutenberga, którego wtyczka nie jest w stanie przetłumaczyć (zob. Czy wszystkie bloki Gutenberga mogą być tłumaczone?). W takich przypadkach musisz zidentyfikować wszystkie posty zawierające ten blok, aby móc przenieść je do innego, przetłumaczalnego bloku.

Ponieważ Gato AI Translations for Polylang działa z Gato GraphQL pod spodem, możesz wygodnie wykonywać queries GraphQL, aby przeszukiwać swoją treść.

Aby wykonywać queries GraphQL, musisz najpierw włączyć Advanced Mode i uzyskać dostęp do CPT Queries. Zapoznaj się z Tworzeniem pomocniczych queries, aby uzyskać instrukcje dotyczące włączania Advanced Mode.

Tworzenie query GraphQL

Przejdź do Queries w menu administracyjnym WordPress i dodaj nowy wpis. Nadaj mu opisowy tytuł, np. "Find posts containing a certain block".

Następnie wklej poniższą query 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
  }
}

Ustawianie zmiennych GraphQL

Przed wykonaniem query musisz podać zmienną blockName. Nazwa bloku ma format namespace/block-name.

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

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

Aby znaleźć dokładną nazwę bloku, możesz sprawdzić go w edytorze Gutenberga lub zajrzeć do dokumentacji bloku.

Wykonywanie query

Po ustawieniu zmiennych GraphQL wykonaj query. Odpowiedź będzie zawierać:

  • customPostCount: Łączna liczba postów zawierających blok
  • customPosts: Tablica wszystkich pasujących postów wraz z ich szczegółami
Wykonywanie query GraphQL
Wykonywanie query GraphQL

Przykładowa odpowiedź

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

Kliknij dowolny link wpAdminEditURL, aby bezpośrednio otworzyć dany post w edytorze WordPress. Następnie przejdź do każdego posta i zastąp problematyczny blok przetłumaczalną alternatywą.