Hướng dẫn
Hướng dẫnTìm hiểu bài viết nào chứa một khối nhất định

Tìm hiểu bài viết nào chứa một khối nhất định

Đôi khi bạn có thể gặp một khối Gutenberg mà plugin không thể dịch (xem Có thể dịch tất cả các khối Gutenberg không?). Trong những trường hợp như vậy, bạn cần xác định tất cả các bài viết chứa khối đó để có thể chuyển chúng sang một khối khác có thể dịch được.

Gato AI Translations for Polylang chạy Gato GraphQL bên dưới, bạn có thể thực thi các queries GraphQL một cách tiện lợi để tìm kiếm trong nội dung của mình.

Để thực thi các queries GraphQL, trước tiên bạn phải bật Advanced Mode và truy cập CPT Queries. Xem Tạo các Queries hỗ trợ để biết hướng dẫn cách bật Advanced Mode.

Tạo query GraphQL

Điều hướng đến Queries trong menu quản trị WordPress của bạn và thêm một mục mới. Đặt cho nó một tiêu đề mô tả như "Find posts containing a certain block".

Sau đó, dán query GraphQL sau:

query FindPostsContainingBlock(
  $blockName: String!
) {
  customPostCount(
    filter: {
      status: any,
      search: $blockName
    }
  )
  customPosts(
    filter: {
      status: any,
      search: $blockName
    },
    pagination: { limit: -1 }
  ) {
    id
    title
    customPostType
    url
    wpAdminEditURL
  }
}

Thiết lập các biến GraphQL

Trước khi thực thi query, bạn cần cung cấp biến blockName. Tên khối theo định dạng namespace/block-name.

Ví dụ, để tìm các bài viết chứa khối Yoast FAQ, hãy đặt các biến GraphQL như sau:

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

Để tìm tên khối chính xác, bạn có thể kiểm tra khối trong trình soạn thảo Gutenberg hoặc xem tài liệu của khối đó.

Thực thi query

Sau khi thiết lập các biến GraphQL, hãy thực thi query. Phản hồi sẽ bao gồm:

  • customPostCount: Tổng số bài viết chứa khối đó
  • customPosts: Một mảng gồm tất cả các bài viết phù hợp cùng với thông tin chi tiết của chúng
Thực thi query GraphQL
Thực thi query GraphQL

Ví dụ về phản hồi

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

Nhấp vào bất kỳ liên kết wpAdminEditURL nào để mở trực tiếp bài viết đó trong trình soạn thảo WordPress. Sau đó điều hướng đến từng bài viết và thay thế khối có vấn đề bằng một lựa chọn thay thế có thể dịch được.