ブログ

⭐️ 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 のすべてのアップデートを把握しましょう。