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 感谢他的有益评论!=)