【转载】wordpress垃圾评论屏蔽的相关方法总结

使用WORDPRESS每天都面临着垃圾评论的干扰,其实不光是wordpress,特别对于论坛也更多,添加黑名单是添加不完的,不过只要不是特意针对你的,添加一下还是会好许多!特别是老耿博客出现一些特别麻烦的垃圾评论,面对这样的以前的伙伴们都放出了不少的好办法,特别使用一些下载的免费主题可能出现的情况会更多。wordpress垃圾评论屏蔽的相关方法总结如下:

首先禁止一些带有非法词汇的评论提交到数据库,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//禁止垃圾评论提交到数据库
function 7vps_fuckspam($comment) {
    if(  is_user_logged_in()){ return $comment;} //登录用户无压力...
      
    if( wp_blacklist_check($comment['comment_author'],$comment['comment_author_email'],$comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_IP'], $comment['comment_agent'] )){
        header("Content-type: text/html; charset=utf-8");
        wp_die('
您评论包含辱骂,过激或者违反法律等言论,或者您的IP已被加入黑名单,如有疑问请联系管理员处理!<a href="javascript:history.go(-1);">返回文章页</a>
');
    else  {
        return $comment;
    }
}
add_filter('preprocess_comment', '7vps_fuckspam');

在主题的functions.php文件加入以上代码后然后在wordpress后台设置评论黑名单词汇如下图:

7vpspinglun

 

可能一些新人一下在还找不到在哪设置wordpress评论黑名单关键词。(PS:登录后台后点击设置里面的讨论选项即可看到评论黑名单了。)设置完评论黑名单后就能防住部分非法广告评论了,当然你也可以把一些经常发垃圾评论的ip加入到黑名单,这样就可以屏蔽该IP在你网站上评论了。

接下来是评论字数的限制,最近一些群发的中文垃圾评论都是事先采集好一些小说片段后者笑话片段然后带上网址批量群发到wordpress上,对于这种评论关键词黑名单就很难屏蔽住了,不过通过观察可以看出这类评论一般都是长篇大论的,所以我们可以限制评论的字数来达到屏蔽效果,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//评论字数限制
function 7vps_comment_length( $commentdata ) {
$minCommentlength = 3; //最少字数限制
$maxCommentlength = 220; //最多字数限制
$pointCommentlength = mb_strlen($commentdata['comment_content'],'UTF8'); //mb_strlen 1个中文字符当作1个长度
if ( $pointCommentlength < $minCommentlength )
{
header("Content-type: text/html; charset=utf-8");
wp_die('
抱歉,您的评论太短了,请至少输入' . $minCommentlength .'个字(已输入'. $pointCommentlength .'个字)<a href="javascript:history.go(-1);">返回文章页</a>
');
exit;
}
if ( $pointCommentlength > $maxCommentlength )
{
header("Content-type: text/html; charset=utf-8");
wp_die('
抱歉,您的评论太长了,请少于' . $maxCommentlength .'个字(已输入'. $pointCommentlength .'个字)<a href="javascript:history.go(-1);">返回文章页</a>
');
exit;
}
return $commentdata;
}
add_filter( 'preprocess_comment', '7vps_comment_length' );

加上评论字数限制以及关键词屏蔽后已经可以屏蔽大部分垃圾评论了,但是部分比较短的英文评论和日语评论还是屏蔽不了,其实我们可以让评论必须包含中文且不包含日文,即可屏蔽这类垃圾评论了,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function 7vps_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
header("Content-type: text/html; charset=utf-8");
wp_die( "
写点汉字吧,博主是个门外汉! Please write some chinese words!<a href='javascript:history.go(-1);'>返回文章页</a>
");
exit;
}
if(preg_match($jpattern, $incoming_comment['comment_content'])){
header("Content-type: text/html; charset=utf-8");
wp_die( "
日文滚粗!Japanese Get out!日本語出て行け!<a href='javascript:history.go(-1);'>返回文章页</a>
");
exit;
}
return( $incoming_comment );
}
add_filter('preprocess_comment', '7vps_comment_post');

将以上方法一起时候后基本上随机的群发的垃圾评论已经骚扰不到你了,不过要是有人针对你的站,特意的制造垃圾评论的话那就要依靠服务器来屏蔽UA来预防了。

最后说下以上代码都是加到当前使用的主题的functions.php文件里即可~

温馨提示:如果你们使用的是Ajax无刷新评论的话要把函数里的wp_die替换为err

以上的教程不是什么插件,都是代码,自己在添加时记得千万莫用记事本打开哦!

题外话:方法收集于互联网,发布时已经标注来源,在文章的顶端来源处!

还没回应

发表评论

电子邮件地址不会被公开。 必填项已用*标注