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

Dis*_*ame 2 php wordpress

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

注意:我正在使用用户角色编辑器插件.

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

我的代码:

    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();
}
Run Code Online (Sandbox Code Playgroud)

我将此代码添加到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 ) : ?>
Run Code Online (Sandbox Code Playgroud)

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

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

在此输入图像描述

Sab*_*ari 6

您可以使用:

//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) ;
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :-)