Wordpress角色显示名称

Dav*_*cer 6 wordpress roles

我正在寻找一个简洁的方法来获得Wordpress角色显示名称.

当你添加的角色(例如add_role( 'special', 'A Special Role');),你要设置的显示名称.

当您获得角色(例如get_role( 'special' );)时,返回的角色对象只具有名称和功能对象.

WP_Role Object(
[name] => special
[capabilities] => Array() )
Run Code Online (Sandbox Code Playgroud)

没有显示名字.显示名称在WP Admin后端(users.php和user-edit.php)中使用,但它是一只兔子warren ...而且我找不到会返回它的函数.你可以wp_user_roleswp-options表格的行中看到它- 当然我不需要去那里?

小智 9

如果您正在运行非英语WordPress站点并希望显示正确(已翻译)的角色名称,就像它出现在所有WordPress管理页面中一样,以下是如何执行此操作:

    global $wp_roles;
    echo translate_user_role( $wp_roles->roles[ $role ]['name'] );
Run Code Online (Sandbox Code Playgroud)

$role角色名称在哪里(即'special'在原始问题中).

注意:translate_user_role是一个WordPress核心未记录的功能.


Dav*_*cer 6

Here is my solution to the above scenario:

    global $wp_roles;
    $role = $wp_roles->roles['special']['name'];
Run Code Online (Sandbox Code Playgroud)

Or in my case, what I was trying to achieve was:

    global $wp_roles;
    $u = get_userdata($user->ID);
    $role = array_shift($u->roles);
    $user->role = $wp_roles->roles[$role]['name'];
Run Code Online (Sandbox Code Playgroud)

Hope this helps someone