在评论部分将用户名更改为昵称

时间:2014-12-23 作者:Kevin Armstrong

是否可以在评论部分将用户名更改为昵称?

以下是我当前用于在注释部分显示用户用户名的代码:

    <?php
    /* translators: 1: comment author, 2: date and time */
        printf( \'%1$s  %2$s \',
            sprintf( \'<span>%s</span>\', get_comment_author_link() ),

            sprintf( \'\',
                esc_url( get_comment_link( $comment->comment_ID ) ),
                get_comment_time( \'c\' ),
                /* translators: 1: date, 2: time */
                sprintf( \'%1$s ، %2$s\', get_comment_date("d M Y"), get_comment_time() )
                ));
            ?>
我尝试使用下面的代码而不是上面的代码来显示昵称:

<?php
    $commenter_id = $comment->user_id;
    $commenter_name =  get_usermeta($commenter_id,\'nickname\');?>
<?php echo $commenter_name; ?>  
但问题是,在来宾用户发布评论后,它不会显示他在发布评论前添加的名称。

谢谢

1 个回复
最合适的回答,由SO网友:Robert hue 整理而成

是的,当然它不会显示客人评论的任何名称,因为他们不是您网站的注册用户,所以他们没有任何nickname 关联。

在这种情况下,您可以做的是,如果评论是由用户或客人做出的,则在打印昵称之前添加一个检查。并据此采取行动。

因此,这是您想要使用的代码。

if ( $comment->user_id != \'0\' ) {
    echo \'<span class="some-class">\' . get_user_meta( $comment->user_id, \'nickname\', true ) . \'</span>\';
} else {
    echo \'<span class="other-class">\' . get_comment_author_link() . \'</span>\';
}
这将检查注释者是否user_id0 (对于来宾),然后将显示带有链接url的来宾名称(默认),如果是用户,则将打印用户的昵称。

结束