我如何在评论中显示评论员的名字和姓氏?

时间:2016-12-07 作者:Pete

如何在评论中显示评论者的名字和姓氏?。。。而不是当前显示的用户名。

3 个回复
最合适的回答,由SO网友:CK MacLeod 整理而成

这将为您提供一个名字+姓氏组合(如果可用),或者如果您的用户提交的都是名字或姓氏,则只提供名字或姓氏。

这假设您对注册用户名感兴趣。如果你要在评论表单中添加名字和姓氏。。。或者从后端向前将名字+姓氏视为“显示名称”(因此可能不仅仅是在评论形式中),两者都会有所不同!

用于主题功能。php或插件:

add_filter( \'get_comment_author\', \'wpse_use_user_real_name\', 10, 3 ) ;

//use registered commenter first and/or last names if available
function wpse_use_user_real_name( $author, $comment_id, $comment ) {

    $firstname = \'\' ;
    $lastname = \'\' ;

    //returns 0 for unregistered commenters
    $user_id = $comment->user_id ;

    if ( $user_id ) {

        $user_object = get_userdata( $user_id ) ;

        $firstname = $user_object->user_firstname ;

        $lastname = $user_object->user_lastname ; 

    }

    if ( $firstname || $lastname ) {

        $author = $firstname . \' \' . $lastname ; 

        //remove blank space if one of two names is missing
        $author = trim( $author ) ;

    }

    return $author ;

}
当然,您的结果可能会有所不同,这取决于您的安装以及您可能添加的任何特定要求1)评论(即,“任何人”与“仅注册”)和2)注册(注册时是否需要名字和姓氏?)。

此外,在完整安装中,您可能需要调整用户配置文件页面,其中用户选择“显示名称”如果要显示firstname/lastname,那么最好以这样或那样的方式来处理,例如通过限制选择,或者通过调整标签和说明。

SO网友:manolomunoz

使用$comment对象,您可以获得名称,并且可以通过条件显示所需的作者
这里我留下一个例子来显示姓名和姓氏的第一个字母(如果有)。

add_filter( \'get_comment_author\', \'mmr_use_user_real_name\', 10, 3 );
function mmr_use_user_real_name( $author, $comment_id, $comment ) {

    $firstname   = \'\';
    $lastname    = \'\';
    $author_name = $comment->comment_author;

    if ( $author_name ) {
        $nombre_partes = explode( \' \', $author_name );
        $firstname     = $nombre_partes[0];
        $lastname      = $nombre_partes[1];
        if ( $lastname ) {
            $custom_lastname = substr( $lastname, 0, 1 );
            $author          = $firstname . \' \' . $custom_lastname . \'.\';
        } else {
            $author = $firstname;
        }
    }

    return $author;
}

SO网友:Felipe Rodrigues

看看\'callback\' 函数的参数wp_list_comments. 您可以设置自己的函数来呈现注释列表:https://codex.wordpress.org/Function_Reference/wp_list_comments.

在google上搜索了一下之后,我发现了一篇很棒的完整的文章,可以帮助您:https://blog.josemcastaneda.com/2013/05/29/custom-comment/