How to display user role

时间:2012-05-27 作者:pixelngrain

如何在作者页面上显示用户角色。

我已经创建了自己的角色(组),所以我想在帖子下方和作者列表中显示用户角色。

我尝试过这段代码,但没有作为其调用current\\u用户使用,也没有在所有作者配置文件中显示当前用户角色

<?php 
    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);

    if ($user_role == \'administrator\') {
        echo \'Administrator\';
    } elseif ($user_role == \'editor\') {
        echo \'Editor\';
    } elseif ($user_role == \'author\') {
        echo \'Author\';
    } elseif ($user_role == \'contributor\') {
        echo \'Contributor\';
    } elseif ($user_role == \'subscriber\') {
        echo \'Subscriber\';
    } else {
        echo \'<strong>\' . $user_role . \'</strong>\';
    }
?>
如何更改此代码以显示用户实际角色而不是当前用户角色。

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

更改:

$user_roles = $current_user->roles;
使用

$user = new WP_User( $user_id );
$user_roles = $user->roles;
$user\\u id应该是您试图获取的角色的实际用户id。

Update,

抱歉,我刚刚阅读了作者模板部分,请尝试以下操作:

//first get the current author whos page you are viewing
if(isset($_GET[\'author_name\']))
        $curauth = get_user_by(\'slug\', $author_name);
else
        $curauth = get_userdata(intval($author));
//then get the user object with roles
$user = new WP_User( $$curauth->ID );
$user_roles = $user->roles; 
....

SO网友:WP Themes

我假设您试图显示文章作者的角色,而不是查看作者页面的当前用户。

假设您在循环中,请执行以下操作:

//get the post author\'s ID
$user_id = get_the_author_meta( \'ID\' ); //assume we are in The Loop

$user_obj = get_userdata( $user_id );

if( !empty( $user_obj->roles ) ){
    foreach( $user_obj->roles as $role ){
        echo $role;
    }
}
或者,如果只为每个用户/作者分配一个角色,则可以执行以下操作,而不是替换整个角色foreach 块:

echo $user_obj->roles[0];

结束

相关推荐