【问题标题】:Display WordPress User Role显示 WordPress 用户角色
【发布时间】:2016-01-10 06:33:23
【问题描述】:

我的网站上有一个工单支持表单,现在有一个字段返回(在管理区域中)提交表单的人的姓名。

有人知道我会如何修改它以显示他们的用户角色吗? IE。订阅者、编辑者等

$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;
}

【问题讨论】:

    标签: wordpress user-roles


    【解决方案1】:

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

    $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 将显示为 Admin 等。

    另外你可能会注意到角色[0],0 表示我们当前拥有的数据是一个数组。所以我们从分配给用户的所有角色中挑选第一个用户角色。我相信它足以满足您的需求。

    如果这能解决您的问题或者您仍需要任何帮助,请告诉我。您可以在 cmets 中发帖。或更新您的问题。

    【讨论】:

    • 有效!你是一个救生员。最后一件事。它使用标准下划线 WP 显示用户角色,有没有办法解决这个问题?例如,“Basic_subscriber”我希望显示为“Basic Subscriber” 没什么大不了的,除了我没有人看到它,只是想知道......
    • @bjkralik 很高兴知道它对您有用!你需要这样的东西 $raised_by = str_replace("_"," ",$raised_by);然后你可以再次对这两个词使用 ucwords 来制作大写字母。等我更新上面的代码。
    • 抱歉,您能否更新上面代码的最后一行以反映您的意思。
    • 太棒了! @bjkralik您可以选择我的答案来解决这个问题。谢谢!
    【解决方案2】:

    您可以使用这行代码。

    $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);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2017-02-17
      • 1970-01-01
      • 2014-09-23
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      相关资源
      最近更新 更多