블로그

⭐️ 다국어 사이트를 위한 MultilingualPress 확장 기능이 포함된 v2.6 출시

Leonardo Losoviz
작성자: Leonardo Losoviz ·

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.networkSites
  • Root.networkSiteCount

networkSites 필드는 네트워크 내 모든 사이트를 배열로 반환하며, 각 사이트는 다음 필드를 포함하는 새로운 NetworkSite 타입입니다:

  • id
  • name
  • url
  • locale
  • language

이 필드들은 멀티사이트가 활성화된 경우(즉, 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] 자동화 규칙 추가

Gato GraphQL PRO에 다음 자동화 규칙이 추가되었습니다:

  • MultilingualPress: 게시물을 게시할 때 모든 언어로 번역 (Gutenberg)
  • MultilingualPress: 게시물을 게시할 때 모든 언어로 번역 (Classic editor)

뉴스레터 구독하기

Gato GraphQL의 모든 업데이트를 놓치지 마세요.