我正在寻找一个简洁的方法来获得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_roles在wp-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核心未记录的功能.
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
| 归档时间: |
|
| 查看次数: |
10060 次 |
| 最近记录: |