WordPress 一直以来都有个问题, 如果博主设置评论不需要审核批准就能发表, 那么有可能被人冒名顶替管理员进行留言。大家应该都知道,Wordpress 留言显示的头像是通过留言者的 Email 地址去匹配 Gravatar 通用头像进行显示的,这时候如果我们的邮箱和用户名被不坏好意的人知晓了(其实这个很容易就能得到),他就可以冒充管理员进行垃圾评论,甚至误导辱骂其他留言者回复等恶意行为。虽说管理员可以随后删除这些评论, 但是万一管理员长期不在线或者有人恶意留言那还是挺麻烦的。
下面就给大家分享 2 段有用的代码,用以避免不怀好意的人冒充管理员(Admin) 昵称或邮箱在 Wordpress 博客里面留言评论,保证 wordpress 安全。
方法 1
/* 防止在 WordPress 别人冒充博主发表评论 */
function lxtx_usecheck($incoming_comment) {
$isSpam = 0;
// 将以下代码中的 lxtx 改成博主昵称
if (trim($incoming_comment['comment_author']) == 'lxtx')
$isSpam = 1;
// 将以下代码中的 example#ilxtx.com 改成博主 Email
if (trim($incoming_comment['comment_author_email']) == 'example#ilxtx.com')
$isSpam = 1;
if(!$isSpam)
return $incoming_comment;
wp_die('请勿冒充博主发表评论');
}
if(!is_user_logged_in())
add_filter( 'preprocess_comment', 'lxtx_usecheck' );
方法 2
/* 防止在 WordPress 别人冒充博主发表评论 */
function lxtx_no_fake_blog_owner_comment($incoming_comment){
// 将以下代码中的 龙笑天 和 龙笑天下 改成博主昵称
$name = array('龙笑天', '龙笑天下');
// 将以下代码中的 example#ilxtx.com 改成博主 Email
$email = array('example#ilxtx.com');
global $user_ID;
if(!is_super_admin()){
if(in_array(strtolower(trim($incoming_comment['comment_author'])), $name) || in_array(strtolower(trim($incoming_comment['comment_author_email'])), $email)){
wp_die('请不要冒充博主发表评论!');
exit;
}else{
return $incoming_comment;
}
}else{
return $incoming_comment;
}
}
add_filter('preprocess_comment', 'lxtx_no_fake_blog_owner_comment');
以上 2 种方法任选其一,达到的效果是一样的:如果非登陆用户使用管理员昵称或邮箱进行留言回复行为,会直接弹出错误提示。
PS:如果出现某些问题,可以把其中的
wp_die
改为err
试下。
还没有人赞赏,快来当第一个赞赏的人吧!
本文为原创文章,版权归龙笑天下所有,欢迎分享本文,转载请保留出处!
请问有办法能让评论记住游客的昵称和邮箱吗?这样下次评论就不需要输入昵称和邮箱了。
@小斌
可以看看这篇文章哈:用 cookie 记住用户信息后 ajax 实现实时显示 Gravatar 头像并实时缓存到本地|成航先森
看来这个方法目前我用不上,因为我不喜欢登陆后再去回复评论,老麻烦!
@我爱动感单车网其实习惯了也还好~
我有时候不想登录,想直接回复。。。懒癌犯了
@成航先森我也很懒~但输习惯了也没啥…
采用了第二种,非常有效的方法!