WPML
apply_filters( 'wpml_display_language_names', mixed $empty_value, string $native_name, string|bool $translated_name, bool $lang_native_hidden, bool $lang_translated_hidden )
类型
filter
WPML 版本
3.2

说明

检查一种语言的本族语名称与该语言的翻译名称是否不同。如果不同,则同时返回两者。否则,仅返回其中一个。

此过滤器通常用于自定义语言切换器。

参数

$empty_value
(mixed) (必填) 这通常是过滤器将要修改的值。我们在这里不进行任何过滤,因此将其设置为 NULL。这是为了让过滤器函数实际接收完整的参数列表
$native_name
(string) (必填) 语言的本族语名称
$translated_name
(string|bool) (必填) 语言的翻译名称。默认为 FALSE
$lang_native_hidden
(bool) (可选) 默认为 FALSE。0|false 或 1|true。是否隐藏语言的本族语名称
$lang_translated_hidden
(bool) (可选) 默认为 FALSE。0|false 或 1|true。是否隐藏语言的翻译名称

使用示例

示例
function my_footer_languages_list(){
    $languages = apply_filters( 'wpml_active_languages', NULL, 'skip_missing=0&orderby=code' );
    if( !empty( $languages ) ){
        echo '<div id="footer_language_list"><ul>';
        foreach( $languages as $l ){
            echo '<li>';
            if( $l['country_flag_url'] ){
                if( !$l['active'] ) echo '<a href="'.$l['url'].'">';
                echo '<img src="'.$l['country_flag_url'].'" height="12" alt="'.$l['language_code'].'" width="18" />';
                if( !$l['active'] ) echo '</a>';
            }
            if(!$l['active']) echo '<a href="'.$l['url'].'">';
            echo apply_filters( 'wpml_display_language_names', NULL, $l['native_name'], $l['translated_name'] );
            if( !$l['active'] ) echo '</a>';
            echo '</li>';
        }
        echo '</ul></div>';
    }
}

上面的示例函数执行以下操作:

  1. 如果有任何语言,它将创建一个 DIV 并开始一个无序列表

  2. 然后,它会遍历每种语言并将其添加为列表项。
    如果该语言不是活动语言,它会添加指向该语言翻译页面的链接

  3. 然后添加语言旗帜

  4. 最后,如果本族语名称和翻译名称不同,则同时添加这两种语言名称

wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_active_languages

所有 29 个 全站语言信息 钩子 →