WordPress(目前)没有全局功能(例如。get_role_name()
) 获取角色名称(例如。Shop Manager
对于shop-manager
或者也许shop_manager
等等),但您可以很容易地获取(然后显示)它,如下所示:
$role = \'shop-manager\'; // the role slug; it\'s up to you how to get the value..
$role_name = $role ? wp_roles()->get_names()[ $role ] : \'\';
/* Or directly access WP_Roles::$role_names:
$role_name = $role ? wp_roles()->role_names[ $role ] : \'\';
*/
echo $role_name;
参考文献:
wp_roles()
以及
WP_Roles
class.
一些附加注意事项使用时要小心array_shift()
- 它会返回值,但也会从源数组中删除原始项,因此在您的情况下,下次访问$current_user->roles
, 它将为空或不再包含用户的角色。
就像当前的post一样,使用get_post()
, 还建议使用wp_get_current_user()
获取当前用户对象/数据,而不是依赖全局$current_user
变量
如果您的代码仅在当前用户通过身份验证/登录后运行,则获取用户角色的快捷方式为$role = wp_get_current_user()->roles[0];
:)
PS:非常感谢@WacławJacek 感谢他的有益评论!=)