我这里有代码:
$pageLanguage = strtolower($pageMetadata["language"]);
$languageArray = array ("afrikaans" => "af", "dutch" => "nl", "french" => "fr", "german" => "de", "spanish" => "es");
$updatedLanguage = $languageArray[$pageLanguage];
add_filter(\'locale\', \'change_my_locale\');
function change_my_locale( $locale ) {
$locale = $updatedLanguage;
return $locale;
}
我想知道如何将变量$updatedLanguage传递到change\\u my\\u locale()函数中?
最合适的回答,由SO网友:Antti Koskinen 整理而成
您可以使用匿名函数并使用use
.
$updatedLanguage = $languageArray[$pageLanguage] ?? \'\';
if ( $updatedLanguage ) {
add_filter(\'locale\', function($locale) use ($updatedLanguage) {
return $updatedLanguage;
});
}
如果要在运行时更改区域设置,则可能需要查看此处
Change locale manually at runtime?, 注意到变更可能会对性能产生影响。此外,您可能需要在WP加载序列中尽早进行更改,以便加载正确的翻译文件(如果需要的话)。