我隐约意识到这与Wordpress的初始化方式有关。我知道WPLANG是不能即时更改的。
PHP就是这样工作的:您不能更改已经定义的常量。
但这有过滤器。下面的插件是一个草图,您可以使用它来尝试看看这个方向是否符合您的需要。
<?php
defined( \'ABSPATH\' ) OR exit;
/**
* Plugin Name: (#102471) Query Locale
*/
add_filter( \'locale\', \'wpse_102471_locale\', 20 );
/**
* Callback to filter the locale/textdomain.
* Assumes that you got a `lang` query var
* @param bool $locale
* @return mixed string/bool $locale|$GLOBALS[\'wp_query\'][\'lang\']
*/
function wpse_102471_locale( $locale = false )
{
global $wp_query;
if ( isset( $wp_query[\'lang\'] ) )
return $wp_query[\'lang\'];
return $locale;
}