如何通过语言代码获取WPML中语言的自定义旗帜
WPML根据语言代码获取自定义旗帜的高效方案
不用遍历所有语言,直接用WPML内置的icl_get_language_info()函数就能搞定,它会自动识别后台配置的自定义旗帜,返回正确的URL,同时还能拿到语言相关的其他信息。
完整代码示例:
$lang_code = 'de'; // 直接通过语言代码获取语言详情 $lang_info = icl_get_language_info( $lang_code ); // 获取语言名称(两种方式选其一即可) // 方式1:保留你原来的过滤器用法 $lang_name = apply_filters('wpml_translated_language_name', false, $lang_code ); // 方式2:直接从返回的数组取原生名称或后台设置的显示名称 // $lang_name = $lang_info['native_name']; // $lang_name = $lang_info['display_name']; // 获取旗帜URL(兼容默认和自定义旗帜) $flag_url = $lang_info['country_flag_url']; // 输出旗帜和名称的示例 echo '<img src="' . esc_url( $flag_url ) . '" alt="' . esc_attr( $lang_name ) . '">'; echo '<span>' . esc_html( $lang_name ) . '</span>';
关键说明:
icl_get_language_info()是WPML官方提供的高效函数,仅针对单个语言代码查询,性能远优于遍历所有语言。- 返回的数组里
country_flag_url字段会自动返回后台设置的自定义旗帜地址,不再依赖默认的插件路径,完美解决你之前的问题。 - 函数返回的其他字段比如
native_name(语言原生名称)、display_name(后台配置的显示名称)也可以按需使用,灵活度更高。
内容的提问来源于stack exchange,提问作者Rajeev
相关产品推荐
相关产品推荐

