通过短代码获取WordPress当前登录用户的角色名称
获取WordPress当前登录用户的角色名称(替代Slug)
你当前的代码返回的是角色的slug,要获取角色的正式名称,需要借助WordPress的get_role()函数获取完整角色对象,再从中提取名称。修改后的代码如下:
function get_user_role() { global $current_user; $user_roles = $current_user->roles; $user_role_slug = array_shift($user_roles); // 通过slug获取角色对象,进而得到角色名称 $role_object = get_role($user_role_slug); $user_role_name = $role_object ? $role_object->name : '无角色'; return $user_role_name; } add_shortcode('display_user_role', 'get_user_role');
关键说明:
get_role($user_role_slug):传入角色slug,返回对应的WP_Role对象,该对象包含角色的名称、权限等完整信息- 增加了
$role_object ? ... : '无角色'的判断,避免用户无角色时出现报错 - 保留了你原代码中取第一个角色的逻辑,适配多数单角色场景需求
内容的提问来源于stack exchange,提问作者Krishna Hoccane
相关产品推荐
相关产品推荐

