在wordpress中如何在注释中显示USER ROLE

时间:2015-12-02 08:02:31

标签: php wordpress

在我的wordpress网站上,有一个评论模板,我在其中做了一些我想要的更改,但我遇到了问题。

注意:我使用的是User Role Editor插件。

我想在每条评论中的用户名旁边显示用户角色

我的代码:

    function get_the_author_role() {
    global $wpdb, $wp_roles, $authordata;

    if ( !isset($wp_roles) )
        $wp_roles = new WP_Roles();

    foreach($wp_roles->role_names as $role => $Role) {
        $caps = $wpdb->prefix . 'capabilities';
        if (array_key_exists($role, $authordata->$caps))
            return $Role;
    }
}

/**
 * Echo the account role of the author of the current post in the Loop.
 * @see get_the_author_role()
 * @return null
 */
function the_author_role() {
    echo get_the_author_role();
}

我将此代码添加到function.php中,但它没有用。

这是我的comment-template.php部分:

     <?php printf( __( ' <cite class="user" ><font size="5.5" color=red > %s </font></cite>   <span class="user"> </span>' ), get_comment_author_link() );  ?>

[  ] 

            <?php if ( '0' == $comment->comment_approved ) : ?>

用户可以扮演任何角色,即管理员,编辑,作者,订阅者或其他任何角色,但应该打印用户的角色。

我希望它看起来像图片,用户角色放在方括号中。

enter image description here

1 个答案:

答案 0 :(得分:5)

您可以使用:

//get the commented user id
$user_id   = get_comment(get_comment_ID())->user_id;

if ($user_id)
{
    $user_info = get_userdata($user_id );
    echo implode(', ', $user_info->roles) ;
}

希望这会有所帮助: - )