WPML
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
(字符串) (可选) 要获取的选项名称。应提供未经 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

所有 12 个 获取本地化内容 钩子 →