헬퍼 쿼리 만들기
번역 작업을 진행하다 보면 사이트 전체에서 특정 콘텐츠를 파악·분석·처리해야 하는 다양한 상황이 생길 수 있습니다. 예를 들면:
- 번역할 수 없는 특정 Gutenberg 블록이 포함된 게시물 찾기
- 손상되거나 잘못된 데이터가 포함된 게시물 파악하기
- 수동 검토나 마이그레이션이 필요한 콘텐츠 찾기
- 일괄 작업을 위한 게시물, 페이지 또는 기타 콘텐츠 유형 목록 가져오기
Gato AI Translations for Polylang은 내부적으로 Gato GraphQL을 실행하므로, 이 도구를 활용하여 커스텀 GraphQL 쿼리를 작성하고 WordPress 사이트의 정보를 검색·필터링·가져올 수 있습니다.
고급 모드 활성화
GraphQL 쿼리를 실행하려면 먼저 플러그인 설정에서 고급 모드를 활성화해야 합니다.
설정 > 플러그인 구성 > 고급 사용으로 이동한 후 고급 모드 활성화를 선택합니다:

활성화되면 Queries 커스텀 게시물 유형이 WordPress 관리 메뉴에서 사용 가능해집니다:

WordPress 관리 메뉴에서 Queries로 이동하여 새 항목을 추가합니다. 쿼리의 내용을 명확하게 나타내는 설명적인 제목을 붙여 주세요.
예시
특정 블록이 포함된 게시물 찾기
자주 쓰이는 사용 사례 중 하나는 번역할 수 없는 특정 Gutenberg 블록이 포함된 게시물을 파악하는 것입니다. 이 쿼리는 번역 가능한 다른 블록으로 마이그레이션해야 하는 모든 게시물을 찾는 데 도움이 됩니다.
Find posts containing a certain block이라는 제목으로 새 항목을 만들고 다음 쿼리를 사용하세요:
query FindPostsContainingBlock(
$blockName: String!
) {
customPostCount(
filter: {
status: any,
search: $blockName
}
)
customPosts(
filter: {
status: any,
search: $blockName
},
pagination: { limit: -1 }
) {
id
title
customPostType
url
wpAdminEditURL
}
}쿼리에 변수를 전달할 수 있으므로 다양한 블록에 재사용할 수 있습니다.
예를 들어, Yoast FAQ 블록이 포함된 게시물을 찾으려면 GraphQL 변수를 다음과 같이 설정하세요:
{
"blockName": "yoast/faq-block"
}그런 다음 쿼리를 실행합니다:

응답에서 Yoast FAQ 블록이 포함된 게시물 목록을 확인할 수 있습니다. 임의의 url을 클릭하면 프론트엔드에서 게시물이 열리고, 임의의 wpAdminEditURL 링크를 클릭하면 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"
}
]
}
}손상된 데이터 오류 수정
또 다른 자주 쓰이는 사용 사례는 손상된 데이터 오류를 수정하는 것입니다.
예를 들어, 미디어 항목에 존재하지 않는 상위 항목 참조가 있으면 플러그인이 콘텐츠를 번역하지 못합니다. 상위 항목 참조를 제거하면 이 문제를 해결할 수 있습니다.
Remove parent reference from media item이라는 제목으로 새 항목을 만들고 다음 쿼리를 사용하세요:
mutation RemoveParentReferenceFromMediaItem($mediaItemID: ID!) {
updateMediaItem( input: { id: $mediaItemID, customPostID: null } ) {
status
errors {
__typename
...on GenericErrorPayload {
message
}
}
}
}예를 들어, ID 26066인 미디어 항목의 손상된 데이터 오류를 수정하려면 GraphQL 변수를 다음과 같이 설정하세요:
{
"mediaItemID": 26066
}그런 다음 쿼리를 실행합니다.