无法使Translate_User_Role()工作

时间:2013-06-26 作者:JMau

我一直在研究wpse档案以解决我的问题,但我无法做到这一点。我构建了以下代码:

$args = array(\'fields\' => \'all_with_meta\');
$users = get_users($args);
foreach ($users as $user) {
       echo esc_html( translate_user_role( ucfirst ( $user->roles[0] ) ) );
}
我做了一个print_r()看看我能得到什么。一切都很好,我的意思是我抓住了用户角色,但它本身并不翻译。我需要做更多吗?

2 个回复
SO网友:TheDeadMedic

我认为你的函数嵌套有点混乱;呼叫ucfirst 翻译后,像这样:

esc_html( ucfirst( translate_user_role( $user->roles[0] ) ) );
我的错,完全跳过了一个节拍。相反,您应该使用:

translate_user_role( $GLOBALS[\'wp_roles\']->role_names[ $user->roles[0] ] );
假设所有角色显示名称都是ucfirst( $role key ). 如果仍然不起作用,您确定您使用的语言文件已经完全翻译了WordPress吗?

SO网友:Jory Hogeveen

请注意translate_user_role 当前前端不工作。

这里有一个变通方法,您可以将其放在主题中:

add_action( \'init\', \'load_admin_textdomain_in_front\' )
function load_admin_textdomain_in_front() {
    if ( ! is_admin() ) {
        load_textdomain( \'default\', WP_LANG_DIR . \'/admin-\' . get_locale() . \'.mo\' );
    }
}

结束

相关推荐

按自定义顺序对Get_Users()中的用户进行排序

<?php $blogusers = get_users(\'include=5,6,2,7,12,8\'); foreach ($blogusers as $user) { ... } ?> 现在,这些用户将按名字排序。如何按数字的顺序排序include=...? 示例:用户5第一、用户6第二、用户2第三等。