wp_optionsテーブルに保存されたテキストを翻訳可能にし、オブジェクトIDを自動的に変換する方法について説明します。
テーマやプラグインは、wp_optionsテーブルに保存するオプションの一部としてテキストを含めることがあります。WPMLを使用すると、get_optionの呼び出しをwpml-config.xmlファイルで指定した翻訳に置き換えることで、これらのテキストを翻訳できます。
wpml-config.xml ファイルは、保存されたオプション内のどの文字列を翻訳する必要があるかをWPMLに指示する設定ドキュメントです。
このガイドは、独自のテーマやプラグインを作成する開発者向けです。サードパーティ製のテーマやプラグインから提供される文字列を翻訳しようとしている場合は、文字列翻訳ページに表示されない文字列の検索に関するページをお読みください。
wpml-config.xmlファイルを生成する必要がありますか?Multilingual Toolsプラグインを使用して設定ファイルを自動生成するためのステップバイステップガイドをご覧ください。
wp_optionsテーブル内の文字列の翻訳
テーマやプラグインがget_optionを使用すると、wp_optionsテーブルから値を読み取ります。WPMLはこれらの呼び出しをフィルタリングし、これらのオプションの値に翻訳を提供できます。
これは、wp_optionレコードが単純な文字列である場合だけでなく、シリアライズされた配列である場合にも機能します。
単一のオプションを翻訳するには、admin-textsの下にkeyエントリを追加します。シリアライズされた配列を翻訳するには、以下の例のmy_plugin_optionsで見られるように、keyの下に複数のキーを追加します。
言語設定ファイル内の管理テキスト
<wpml-config>
<admin-texts>
<key name="my_plugins_options">
<key name="option_name_1" />
<key name="option_name_2" />
<key name="options_group_1">
<key name="sub_option_name_11" />
<key name="sub_option_name_12" />
</key>
<key name="options_group_2">
<key name="sub_option_name_21" />
<key name="sub_option_name_22" />
</key>
</key>
<key name="simple_string_option"/>
</admin-texts>
</wpml-config>以下の場合のように、サブキーでワイルドカード *を使用できます。
ワイルドカードの使用例
<wpml-config>
<admin-texts>
<key name="testing_option">
<key name="*"/>
</key>
</admin-texts>
</wpml-config>これは以下のコードと同じです。
同等のコード
<wpml-config>
<admin-texts>
<key name="testing_option">
<key name="sub_key_1"/>
<key name="sub_key_2">
<key name="sub_sub_21">
<key name="sub_sub_211"/>
</key>
<key name="sub_sub_21"/>
</key>
<key name="more_sub_keys"/>
</key>
</admin-texts>
</wpml-config>ワイルドカード * は親キーでは機能しないことに注意してください。
ワイルドカードは親キーでは機能しない
<wpml-config>
<admin-texts>
<key name="some_option_*" />
<key name="*"/>
</admin-texts>
</wpml-config>管理テキスト内のオブジェクトIDの自動変換
WPML 4.8以降では、特定の管理テキストに投稿、商品、またはタクソノミーIDなどのオブジェクトIDが含まれていることを宣言できます。WPMLは、サイトのフロントエンドでこれらのIDを自動的に変換します。
これは、ショートコードIDの自動変換に関する既存の機能の拡張であり、同じ構文を使用します。
admin-textsの下のkeyエントリで、以下を使用します。
- 参照されるオブジェクト(例:post-idsまたはtaxonomy-ids)を指定するtype
- 特定のエンティティ(例:商品)を宣言する場合のsub-type(オプション)
Typeおよびsub-type属性は、任意のネストレベルで追加できます。
WPMLは、以下の形式のIDを検出して変換できます。
- 単一のID(例:123)
- IDの配列(およびエンコードされた配列)(例:[123,456,789])
- カンマ区切りのIDリスト(例:“123,456,789”)
管理テキストでのオブジェクトIDの宣言例
<wpml-config>
<admin-texts>
<key name="admin_text_option_key" type="post-ids" sub-type="product" />
<key name="admin_text_with_nested_ids">
<key name="admin_text_nested_key_with_ids" type="post-ids" sub-type="product" />
<key name="admin_text_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
<key name="admin_text_nested_key_with_subkey">
<key name="admin_text_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
</key>
</key>
</admin-texts>
</wpml-config>追加リソース
wpml-config.xml ファイルの詳細については、言語設定ファイルのガイドをご覧ください。
wpml-config.xmlファイルを使用して他の要素をカスタマイズする方法については、以下の追加ガイドをご覧ください。