⭐️ 다국어 사이트를 위한 MultilingualPress 확장 기능이 포함된 v2.6 출시
Gato GraphQL v2.6 이 출시되었으며, 여러 가지 새로운 기능이 포함되어 있습니다. 변경 사항의 전체 목록은 GitHub의 릴리스 노트를 확인하세요.
아래에 가장 중요한 추가 사항을 설명합니다.
[PRO] MultilingualPress와의 연동 추가
Gato GraphQL PRO가 MultilingualPress 플러그인과의 연동 기능을 갖추게 되었습니다.
새로운 MultilingualPress 확장 기능을 통해 GraphQL 스키마에 다국어 데이터를 가져오는 필드가 제공됩니다.
예를 들어, 이제 다음 쿼리를 실행할 수 있습니다:
query {
posts {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
categories {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
tags {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
pages {
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
customPosts(filter: { customPostTypes: "some-cpt" }) {
__typename
...on GenericCustomPost {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
categories(taxonomy: "some-category") {
__typename
...on GenericCategory {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
tags(taxonomy: "some-tag") {
__typename
...on GenericTag {
multilingualpressIsTranslatable
multilingualpressTranslationConnections {
...MultilingualPressConnectionData
}
}
}
}
}
}
fragment MultilingualPressConnectionData {
siteID
entityID
}이 기능 추가를 통해 Gato GraphQL을 사용하여 MultilingualPress 플러그인을 위한 게시물을 자동으로 번역하고, WordPress 멀티사이트 네트워크 내 해당 사이트에 번역본을 저장할 수 있게 됩니다.
데모 동영상 「Automatically translating posts for MultilingualPress (on a WordPress multisite network)」에서 동작 방식을 확인하세요:
[PRO] _strRegexFindMatches 필드 추가
_strRegexFindMatches 필드가 GraphQL 스키마에 추가되었습니다(PHP Functions via Schema 확장 기능 아래).
이 필드는 정규 표현식을 실행하여 문자열에서 모든 일치 항목을 추출합니다. 예를 들어, 다음 쿼리를 실행하면:
query {
_strRegexFindMatches(
regex: "/https?:\\/\\/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})/",
string: "In website https://gatographql.com there is more information"
)
}...다음 결과가 반환됩니다:
{
"data": {
"_strRegexFindMatches": [
[
"https:\/\/gatographql.com"
],
[
"gatographql.com"
]
]
}
}이 기능 추가를 통해 Gato GraphQL을 사용하여 Poedit 파일에서 빈 문자열을 추출하고, 원하는 언어로 번역한 후 해당 언어의 Poedit 파일을 생성할 수 있게 됩니다.
데모 동영상 Translating all strings in a Poedit file for any language에서 동작 방식을 확인하세요:
siteURL 필드 추가
「Site」모듈을 통해 GraphQL 스키마에 다음 필드가 추가되었습니다:
Root.siteURL
예를 들어, 다음 쿼리를 실행하면:
query {
siteURL
}...다음 결과가 반환됩니다:
{
"data": {
"siteURL": "https://mysite.com"
}
}멀티사이트 데이터를 가져오는 필드 추가
GraphQL 스키마가 새로운 「Multisite」모듈을 통해 제공되는 WordPress 멀티사이트 네트워크에서 데이터를 가져오는 기능을 지원하게 되었습니다.
이 모듈은 GraphQL 스키마에 다음 필드를 추가합니다:
Root.networkSitesRoot.networkSiteCount
networkSites 필드는 네트워크 내 모든 사이트를 배열로 반환하며, 각 사이트는 다음 필드를 포함하는 새로운 NetworkSite 타입입니다:
idnameurllocalelanguage
이 필드들은 멀티사이트가 활성화된 경우(즉, is_multisite() 메서드가 true를 반환하는 경우)에만 활성화됩니다.
예를 들어, 다음 쿼리를 실행하면:
query {
networkSiteCount
networkSites {
id
name
url
locale
language
}
}다음과 같은 결과가 반환될 수 있습니다:
{
"data": {
"networkSiteCount": 3,
"networkSites": [
{
"id": 1,
"name": "Site in English",
"url": "https://mymultisite.com",
"locale": "en_US",
"language": "en"
},
{
"id": 2,
"name": "Site in Spanish",
"url": "https://es.mymultisite.com",
"locale": "es_AR",
"language": "es"
},
{
"id": 3,
"name": "Site in French",
"url": "https://fr.mymultisite.com",
"locale": "fr_FR",
"language": "fr"
}
]
}
}사전 정의된 퍼시스티드 쿼리 추가
Gato GraphQL에 다음 퍼시스티드 쿼리가 추가되었습니다:
- [PRO] Translate posts for MultilingualPress (Gutenberg)
- [PRO] Translate posts for MultilingualPress (Classic editor)
- [PRO] Translate Poedit file content
[PRO] 자동화 규칙 추가
Gato GraphQL PRO에 다음 자동화 규칙이 추가되었습니다:
- MultilingualPress: 게시물을 게시할 때 모든 언어로 번역 (Gutenberg)
- MultilingualPress: 게시물을 게시할 때 모든 언어로 번역 (Classic editor)