MULTSITE:如何让管理栏(工具栏)使用用户的语言,而不是正在查看的子网站的语言?

时间:2021-06-17 作者:henrywright

默认情况下,在网络安装中,查看子站点时sub-site 语言用于管理栏(工具栏)。

如何使管理栏(工具栏)始终使用user?

1 个回复
SO网友:kenno

在Wordpress Core中修复之前,您可以使用这种“脏”方式:

Switch to user locale before admin bar items are processed:

add_filter( \'admin_bar_menu\', \'ws390690_admin_bar_in_user_locale\', 10, 1 );
function ws390690_admin_bar_in_user_locale($wp_admin_bar){
    switch_to_locale( get_user_locale() );
    return $wp_admin_bar;
}

Switch back to site locale after admin bar has been rendered:

add_filter( \'wp_after_admin_bar_render\', \'ws390690_admin_bar_in_user_locale_back\', 10, 2 );
function ws390690_admin_bar_in_user_locale_back(){
    restore_previous_locale();
}
正如@henrywright所提到的,它也在这里工作https://core.trac.wordpress.org/ticket/38643