搜索
Hi~登录注册
查看: 1177|回复: 0

wordpress屏蔽垃圾评论终极策略 |wordpress教程

[复制链接]

1892

主题

1899

帖子

6406

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6406
发表于 2015-4-15 14:45:44 | 显示全部楼层 |阅读模式
最近几天有位小伙伴一直在群里问小V如何来屏蔽wordpress的垃圾评论,其实小V之前发过很多wordpress屏蔽的垃圾评论的方法,不过貌似最近出现了很多不同类型的垃圾评论,有中文的,有英文的,有日文的,甚至还有多国语言混合在一起。不过由于小V设置了很多层的评论限制所以一直没有遇到垃圾评论的骚扰,不过可苦了一些没有防范的小伙伴了。如果不是最近群里有位小伙伴一直在问小V这个事小V还真不知道现在垃圾评论这么猖狂了。好了闲话扯了那么多教程开始~  首先禁止一些带有非法词汇的评论提交到数据库,代码如下: //禁止垃圾评论提交到数据库function v7v3_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', 'v7v3_fuckspam'); 在主题的functions.php文件加入以上代码后然后在wordpress后台设置评论黑名单词汇如下图:  可能一些新人一下在还找不到在哪设置wordpress评论黑名单关键词。(PS:登录后台后点击设置里面的讨论选项即可看到评论黑名单了。)设置完评论黑名单后就能防住部分非法广告评论了,当然你也可以把一些经常发垃圾评论的ip加入到黑名单,这样就可以屏蔽该IP在你网站上评论了。  接下来是评论字数的限制,最近一些群发的中文垃圾评论都是事先采集好一些小说片段后者笑话片段然后带上网址批量群发到wordpress上,对于这种评论关键词黑名单就很难屏蔽住了,不过通过观察可以看出这类评论一般都是长篇大论的,所以我们可以限制评论的字数来达到屏蔽效果,代码如下: //评论字数限制function v7v3_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', 'v7v3_comment_length' ); 加上评论字数限制以及关键词屏蔽后已经可以屏蔽大部分垃圾评论了,但是部分比较短的英文评论和日语评论还是屏蔽不了,其实我们可以让评论必须包含中文且不包含日文,即可屏蔽这类垃圾评论了,代码如下: function v7v3_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', 'v7v3_comment_post'); 将以上方法一起时候后基本上随机的群发的垃圾评论已经骚扰不到你了,不过要是有人针对你的站,特意的制造垃圾评论的话那就要依靠服务器来屏蔽UA来预防了。  最后说下以上代码都是加到当前使用的主题的functions.php文件里即可~  差点忘了说如果你们使用的是Ajax无刷新评论的话要把函数里的wp_die替换为err  以下是几篇相关的文章,大家也可以配合本文中的方法一起使用:  wordpress防采集防恶意爬虫的一点思路 (PS:此文提到了判断UA的方法)  wordpress屏蔽所有非中文系语种垃圾评论的方法 (PS:此文介绍的是根据评论语系来屏蔽垃圾评论)
公众微信:idc5ahl
公众QQ:吾爱互联
关注公众微信,公众QQ每天领现金卡密
卡密介绍(http://www.5ahl.com/thread-2182-1-1.html
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 点我注册

快速回复 返回顶部 返回列表