WPML GraphQL – ヘッドレスWordPressのための多言語WPGraphQL
多言語のヘッドレスWordPressサイトを構築します。WPML GraphQLは、WPGraphQLスキーマに言語認識機能を追加します。すべてのクエリを言語でフィルタリングできます。すべてのクエリでノードの翻訳を返すことができます。多言語メニューはスキーマを通じて提供されます。翻訳されたURIは正しく解決されます。WPML GraphQLは、Next.js、Nuxt、Astro、Gatsby、その他のフロントエンドフレームワークがWordPressコンテンツを読み取るために使用するオープンソースプラグインであるWPGraphQLと連携するように、WPMLチームによって構築されています。Multilingual CMSおよびAgencyに含まれています。
フロントエンドからの言語ごとのコンテンツクエリ
すべてのWPGraphQLクエリにlanguage引数が追加されます。単一のフィールドで投稿、カスタム投稿タイプ、タクソノミーターム、メニュー、メニュー項目、コメントを言語ごとにフィルタリングできます。フロントエンドでのクエリ後のフィルタリング、リクエスト量の倍増、言語の推測は必要ありません。
query PostsES {
posts(where: { language: "es" }) {
nodes { slug uri title }
}
}
トップレベルのノードを言語でフィルタリングすると、関連付けられた項目(カテゴリー、タグ、カスタムタクソノミー)も自動的に同じ言語に従います。ネストされたフィールドごとに引数を追加しなくても、一貫した結果が得られます。
サイトマップや総計のために言語に関係なくすべてを取得したい場合は、language: "all"を渡します。
1つのクエリでのノードのすべての翻訳の取得
投稿およびタクソノミータームのtranslationsフィールドは、スラッグ、URI、言語コード、および要求したネストされたフィールドなど、ノードの他のすべての言語バージョンを返します。1つのクエリ、1回のラウンドトリップで、ページのすべての言語バージョンを取得できます。
これは、関連するクエリのチェーンをフロントエンドにたどらせることなく、ページコンテンツの横にレンダリングされる言語スイッチャーに必要なデータです。
多言語メニュー、タクソノミー、コメント、および言語データ
投稿だけでなく、WPML GraphQLは同じlanguage引数と翻訳処理を以下に拡張します。
- メニューとメニュー項目。言語ごとのナビゲーションのための
menu(language: "fr")。WPML GraphQL 1.1.0で追加されました。 - タクソノミーターム。カテゴリー、タグ、カスタムタクソノミーは、デフォルトで投稿の言語に従い、言語ごとに直接クエリできます。
- コメント。特定の言語の投稿に関連付けられたコメントを返します。
languagesおよびdefaultLanguageクエリ。サイトにインストールされているすべての言語を、コード、ロケール、ネイティブ名、国旗のURL、ホームURLとともに一覧表示します。カスタム言語スイッチャーに最適なデータ形式です。
任意の言語でのIDまたはスラッグによる特定の投稿のクエリ
2つのクエリ形式により、言語固有の識別子を使用して単一の翻訳された投稿を取得できます。
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title slug uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title slug uri
}
}
どちらの形式でも、フロントエンドで「これは翻訳ですか?」という個別のロジックを使用することなく、翻訳されたタイトル、スラッグ、URIを含む翻訳された投稿を返します。
現在のWPGraphQLリリースに対する継続的なメンテナンス
WPML GraphQL 1.1.3は、WPGraphQLプロジェクトのメジャーリリースパスであるWPGraphQL 2.0.0までテストされています。WPGraphQLをメンテナンスするチームは当社と連携しているため、多言語レイヤーはスキーマの変更に追従し続けます。WPGraphQLが新しいリリースを提供すると、WPML GraphQLもすぐに対応します。
ACFMLおよびWPGraphQL for ACFを追加した場合のACFとの連携
Advanced Custom Fieldsでコンテンツモデルを構築し、WPGraphQLを通じてそれらのフィールドを公開するサイトの場合、WPML GraphQLはACFMLおよびWPGraphQL for ACFと連携し、ACFオプションページのクエリにlanguage引数を追加します。
query Settings {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails { addressDetails }
}
}
}
投稿およびカスタム投稿タイプ(CPT)のACFフィールドは、ホストとなる投稿の言語に自動的に従います。
WPMLに含まれるWPML GraphQL
WPML GraphQLはMultilingual CMSおよびWPML Agencyに同梱されています。個別の購入やサイトごとの料金は不要です。一度WPMLを購入するだけで、ヘッドレス多言語スタックに言語レイヤーが追加されます。すでにWPMLをお持ちの場合は、WPMLダウンロードページからWPML GraphQLを有効化してください。