显示WordPress用户角色

时间:2015-10-12 17:25:53

标签: wordpress user-roles

我的网站上有一张票务支持表格,现在有一个字段可以返回(在管理区域中)提交表格的人的姓名。

任何人都知道如何修改它以显示其用户角色?即。订阅者,编辑等

$raised_by='';
if($ticket->type=='user'){
    $user=get_userdata( $ticket->created_by );
    $raised_by=$user->display_name;
}

我猜它里面会有这些东西......但是在谈到这一点时我并不太讨厌。

function get_user_role() {
    global $current_user;
    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);
    return $user_role;
}

2 个答案:

答案 0 :(得分:3)

请将代码的最后一行更改为:

$raised_by=ucwords($user->roles[0]);

这样你当前的代码显示名字,即

    $raised_by='';
       if($ticket->type=='user'){
           $user=get_userdata( $ticket->created_by );
           $raised_by=$user->display_name;
          }

以上代码将成为:

 $raised_by='';
       if($ticket->type=='user'){
           $user=get_userdata( $ticket->created_by );
           $raised_by=ucwords($user->roles[0]);
          }

更新:要删除空格下划线,您的代码可能会变为:

$raised_by='';
       if($ticket->type=='user'){
           $user=get_userdata( $ticket->created_by );
           $raised_by= ucwords(str_replace("_"," ",$user->roles[0]));
          }

您可能会注意到,我还添加了PHP的ucwords功能,这是为了确保屏幕上的角色看起来不错,即管理员将显示为Admin等。

你也可能注意到角色[0],0意味着我们当前拥有的数据是一个数组。因此,我们从分配给用户的所有角色中挑选第一个用户角色。我相信这足以满足您的需求。

如果这可以解决您的问题,或者您仍需要任何帮助,请与我们联系。您可以在评论中发帖。或者更新你的问题。

答案 1 :(得分:0)

您可以使用此行代码。

$raised_by='';
if($ticket->type == 'user'){
    $user = get_userdata( $ticket->created_by );
    $raised_by = implode(', ', $user_info->roles);
}

或者,如果您更喜欢使用您编写的get_user_role函数, 稍微修改它以将用户ID作为输入并返回用户角色。

function get_user_role($user_id) {
    $user_info = get_userdata($user_id);
    $user_roles = $user->roles;
    $user_role = array_shift($user_roles);
    return $user_role;
}

您可以像下面所示使用它来输出用户角色。

$raised_by='';
if($ticket->type == 'user'){
    $user = get_userdata( $ticket->created_by );
    $raised_by = get_user_role($user->ID);
}