apply_filters( 'wpml_unfiltered_admin_string', mixed $default_value, string $option_name )
- タイプ
- filter
- カテゴリー
- ローカライズされたコンテンツの取得
- WPMLバージョン
- 3.2.3-dev
説明
WPML 文字列翻訳は、現在の言語での値の翻訳を返すために、テーマ/プラグインの設定オプションをフィルタリングします。
これは、たとえばWPMLの言語がプライマリに英語、セカンダリ言語にドイツ語と設定されているWordPressインストールにおいて、現在の言語がドイツ語のときにget_option('{theme_name}_settings');を呼び出すと、ドイツ語の翻訳が値として取得されることを意味します。そして、現在の言語が英語のときは、英語の値が表示されます。
しかしこれは同時に、update_option('{theme_name}_settings', $new_value);でオプション値を更新すると、オプション値が両方の言語で更新されることも意味します。これが常に望ましいとは限りません。
そこで役立つのが上記のフィルターです。このフィルターを使用すると、WPML 文字列翻訳のフィルターをバイパスしてオプション値を取得できます。返されるのは取得した言語での値であるため、データベース内の値を更新するなどの後続の操作を行っても、作業中の言語以外の言語に影響を与えることはありません。
引数
- $default_value
- (mixed) (必須) 文字列が存在しない場合に返す値
- $option_name
- (string) (任意) 取得するオプションの名前。SQLエスケープされていない名前を指定します。
使用例
以下の例では、デフォルト言語以外の言語を表示していると仮定します。
取得するオプション値はシリアライズされた配列として保存されています。配列内の単一のキーと値のペアを更新し、データベースに保存するとします。現在の言語のみが影響を受けることを想定しています。
例
// retrieve option value is current language
$a = apply_filters( 'wpml_unfiltered_admin_string', get_option( 'my_option_name' ), 'my_option_name' );
// some operations ...
$a['number']++;
//update the value for the current language only
update_option('my_option_name', $a); 関連するフック
wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_permalink, wpml_element_link