WordPress强制用户评论时显示昵称 保护用户名不泄露

YP,哦不约炮,我只是想用五笔打这,这是一个连环局中局,是从我折腾一个新站开始的,最初是想wordpress免邮箱验证实现正常注册功能,因为注册用户收不到邮件验证码。而当我多次试验最终还是选择回露蔸写的Ludou Custom User Register插件时,发现这插件还是需要修改,于是去掉了不能正常显示的图片和用户注册时的角色选项后,发现昵称一栏有点鸡肋,因为很多用户并不会用上昵称来显示,他可能还是会选择默认,那填写昵称还有用吗?

而事实上,昵称还是有用的,比如保护用户名不泄露,显示的是昵称,而登陆的只能是用户名和邮箱,这就多了一层安全措施。可怎么让昵称默认显示呢?好一顿操作试验后,找到了wp大学里分享的一个代码。见链接《WordPress强制调用用户昵称作为评论作者的名字》,简而言之就是修改主题的 functions.php 文件代码。

//使用昵称来替换用户名显示
function wpkj_get_comment_author_filter( $author, $comment_ID, $comment ){

    $user = $comment->user_id ? get_userdata( $comment->user_id ) : false;
    if ( $user ) {
        $author = $user->nickname;
    } else {
        $author = __( 'Anonymous' );
    }

    return $author;
}
add_filter( 'get_comment_author', 'wpkj_get_comment_author_filter', 10, 3 );

但是当代码使用成功后,还是发现了问题,就是访客留言的不再显示他输入的信息了,而是显示匿名,这就不好了吧,如果访客多的网站,别人给你留个信息,你只显示出来匿名,这让人怎么想啊?于是继续折腾。后来发现原来前台输出的匿名原来是Anonymous限制的,而也没办法换别的代码,既然不能把你改造,那就把你删掉。于是去掉以下这两行代码:

    } else {
        $author = __( 'Anonymous' );

最终能使用的代码是这样的。

//使用昵称来替换用户名显示
function wpkj_get_comment_author_filter( $author, $comment_ID, $comment ){

    $user = $comment->user_id ? get_userdata( $comment->user_id ) : false;
    if ( $user ) {
        $author = $user->nickname;
    }

    return $author;
}
add_filter( 'get_comment_author', 'wpkj_get_comment_author_filter', 10, 3 );

这样一样,评论时站内注册用户是显示昵称的,而普通访客是正常显示,如果用户没有昵称则依然显示用户名。这些修改可以在主题的functions.php中完成,但最好的是自己做一个用来代替functions.php修改的小插件。就不会因为更换主题和主题升级时造成影响。

© 版权声明
THE END
点赞0 分享
小花园 抢沙发

北冥有鱼,其名为鲲

    暂无评论内容