フィルター引数

フィルターには、PHPの同等物に従って次の引数が渡されます。

i18n.gettext

  1. function i18nGettextCallback( translation, text, domain ) {
  2. return translation;
  3. }

i18n.gettext_with_context

  1. function i18nGettextWithContextCallback( translation, text, context, domain ) {
  2. return translation;
  3. }

i18n.ngettext

  1. function i18nNgettextCallback( translation, single, plural, number, domain ) {
  2. return translation;
  3. }

i18n.ngettext_with_context

  1. function i18nNgettextWithContextCallback(
  2. translation,
  3. single,
  4. plural,
  5. number,
  6. context,
  7. domain
  8. ) {
  9. return translation;
  10. }

基本的な例

ここでは、特定の翻訳を上書きするために i18n.gettext フィルターを使用した簡単な例を示します。

  1. // Define our filter callback.
  2. function myPluginGettextFilter( translation, text, domain ) {
  3. if ( text === 'Create Reusable block' ) {
  4. return 'Save to MyOrg block library';
  5. }
  6. return translation;
  7. }
  8. // Adding the filter
  9. wp.hooks.addFilter(
  10. 'i18n.gettext',
  11. 'my-plugin/override-add-to-reusable-blocks-label',
  12. myPluginGettextFilter
  13. );

‘テキストドメイン’特有のフィルターの使用

操作しているテキストドメインに特有のフィルターは、パフォーマンスの理由から一般的に好まれます(コールバックは関連するテキストドメイン内の文字列に対してのみ実行されるため)。

テキストドメイン特有のフィルターに接続するには、標準フィルター名にアンダースコアとテキストドメインを追加します。たとえば、テキストドメインが「woocommerce」の文字列をフィルタリングする場合、次のフィルターのいずれかを使用します:

  • i18n.gettext_woocommerce
  • i18n.gettext_with_context_woocommerce
  • i18n.ngettext_woocommerce
  • i18n.ngettext_with_context_woocommerce

例えば:

  1. // Define our filter callback.
  2. function myPluginGettextFilter( translation, text, domain ) {
  3. if ( text === 'You’ve fulfilled all your orders' ) {
  4. return 'All packed up and ready to go. Good job!';
  5. }
  6. return translation;
  7. }
  8. // Adding the filter
  9. wp.hooks.addFilter(
  10. 'i18n.gettext_woocommerce',
  11. 'my-plugin/override-fulfilled-all-orders-text',
  12. myPluginGettextFilter
  13. );

: テキストドメインが undefined(たとえばWordPressコア文字列)のフィルターを適用するには、フィルター名を構築するために「default」という名前を使用します。

  • i18n.gettext_default
  • i18n.gettext_with_context_default
  • i18n.ngettext_default
  • i18n.ngettext_with_context_default