显示 WordPress 用户角色
Display WordPress User Role
我的网站上有一个票务支持表格,现在有一个字段,returns(在管理区域)是提交表格的人的姓名。
任何人都知道我将如何修改它以显示他们的用户角色? 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;
}
请将代码的最后一行更改为:
$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]);
}
更新: 要使用 space 删除下划线,您的代码可能会变成:
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by= ucwords(str_replace("_"," ",$user->roles[0]));
}
你可能注意到了,我还添加了 PHP 的 ucwords 功能,这是为了确保屏幕上的角色看起来不错,即管理员将显示为管理员等
您可能还会注意到角色[0],0 表示我们当前拥有的数据是一个数组。所以我们从分配给用户的所有角色中挑选第一个用户角色。我相信这足以满足您的需求。
如果这能解决您的问题或者您仍然需要任何帮助,请告诉我。您可以在评论中post。或者更新您的问题。
您可以使用这行代码。
$raised_by='';
if($ticket->type == 'user'){
$user = get_userdata( $ticket->created_by );
$raised_by = implode(', ', $user_info->roles);
}
或者,如果您更喜欢使用您编写的 get_user_role
函数,
稍微修改它以将用户 ID 作为输入并 return 用户角色。
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);
}
我的网站上有一个票务支持表格,现在有一个字段,returns(在管理区域)是提交表格的人的姓名。
任何人都知道我将如何修改它以显示他们的用户角色? 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;
}
请将代码的最后一行更改为:
$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]);
}
更新: 要使用 space 删除下划线,您的代码可能会变成:
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by= ucwords(str_replace("_"," ",$user->roles[0]));
}
你可能注意到了,我还添加了 PHP 的 ucwords 功能,这是为了确保屏幕上的角色看起来不错,即管理员将显示为管理员等
您可能还会注意到角色[0],0 表示我们当前拥有的数据是一个数组。所以我们从分配给用户的所有角色中挑选第一个用户角色。我相信这足以满足您的需求。
如果这能解决您的问题或者您仍然需要任何帮助,请告诉我。您可以在评论中post。或者更新您的问题。
您可以使用这行代码。
$raised_by='';
if($ticket->type == 'user'){
$user = get_userdata( $ticket->created_by );
$raised_by = implode(', ', $user_info->roles);
}
或者,如果您更喜欢使用您编写的 get_user_role
函数,
稍微修改它以将用户 ID 作为输入并 return 用户角色。
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);
}