我已经接管了一个针对不同市场的网站,使用五种语言版本,每种语言版本都是在多站点网络中作为自己的站点设置的。主网站主要面向英国观众,其中一个语言版本面向美国观众。
获取lang
就在html标记中,如下所示<html <?php language_attributes(); ?>>
我需要将每个站点的站点语言设置为相关站点所使用的语言,但当我安装en\\u GB语言文件时,默认的英语选项将消失。根据WP网站,没有en\\u US语言文件。
人们通常如何解决这个问题?在本例中,虽然我可以为每个站点硬编码lang属性,但它仍然会提出一个供将来使用的问题。
ETA:根据下面@toscho建议的代码,我将其添加到我的函数文件中。它会向列表中添加一种语言,但由于某种原因,它不会被保存。这个$current
参数仍保留前一个参数。
add_filter(\'mu_dropdown_languages\', \'add_en_us\', 10, 3);
function add_en_us( $output, $lang_files, $current ) {
array_unshift(
$output,
\'<option value="en_US"\' . selected( $current, \'en_US\', false ) . \'>\'
. __( \'American English\' ) . "</option>"
);
return $output;
}
基于此项目中的时间限制,我将尝试添加空语言文件,但我仍然想知道如何使其正常工作。
SO网友:fuxia
您可以筛选mu_dropdown_languages
在这里再加上美国英语。
未测试的示例代码:
add_filter( \'mu_dropdown_languages\', function( $output, $lang_files, $current )
{
array_unshift(
$output,
\'<option value=""\' . selected( $current, \'en_US\', false ) . \'>\'
. __( \'American English\' ) . "</option>"
);
return $output;
}, 10, 3 );
过滤器
sanitize_option_WPLANG
或
pre_update_option_WPLANG
跳转到保存过程并更正任何可能的问题。