推广 热搜: 后台  帝国cms  DESTOON  位置  网站  帝国cms建站  Wordpress教程  MAC系统  内容  destoon模板 

WordPress三招教你快速屏蔽WordPress垃圾评论

   日期:2019-04-20     浏览:143    违规举报
 

WordPress去掉多说评论之后,经常有各种垃圾评论出现在后台。不堪其扰,于是去找了一些办法来解决这个问题。

一般都是说加一些屏蔽过滤的函数之类的。其实都差不多。不过有些特别长的就显得有点累赘了。

当然比起官方的垃圾过滤插件肯定功能没那么强大,但是最起码会让你的身材很好看。不会在你的数据库弄那么多东西进去。

今天分享几个实用小代码吧。我都用过,而且效果还不错。大家也可以试试,不错可以收藏一下。

第一招:禁止非法词汇评论提交到数据库

把下边的代码放到当前主题的 functions.php 里,然后在后台“讨论”中设置你的黑名单即可。

//禁止垃圾评论提交到数据库function Banfuckspam($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('你是不是在米国骂惯了总统。。这里是天朝,赶紧修改非法词汇吧!');}else{return$comment;}}add_filter('preprocess_comment','Banfuckspam');

当评论的内容、评论者名称、URL、电子邮件或IP地址中包含其中任何关键字时,系统将会禁止提交到数据库。

一行一个关键字或IP地址。WordPress也会在词中匹配关键字,例如“press”亦将匹配“WordPress”。

第二招:限制WordPress评论字数

首先把下边的代码放到当前主题的 functions.php 里,注意修改最小字数:

//限制WordPress评论最少字数function limit_comment_length( $commentdata ){$minlength = 12;//评论最少字数preg_match_all( '/./u', trim( $commentdata['comment_content'] ), $maxlength );$maxlength = count( $maxlength[0] );if( $maxlength < $minlength ) wp_die( '吐槽最少需要 ' . $minlength . ' 字才能完成!' );return $commentdata;}add_filter( 'preprocess_comment', 'limit_comment_length', 8 );

此代码还支持中文字数。这段代码可以限制WordPress评论的最少字符数。

当然,如果你觉得太多了也不行,还可以试试下面这段代码。效果更佳。

//评论字数限制function limit_comment_length( $commentdata ) {$minCommentlength = 5; //最少字数限制$maxCommentlength = 200; //最多字数限制$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 .'个字)');exit;}if ( $pointCommentlength > $maxCommentlength ){header("Content-type: text/html; charset=utf-8");wp_die('抱歉,您的评论太长了,请少于' . $maxCommentlength .'个字(已输入'. $pointCommentlength .'个字)');exit;}return $commentdata;}add_filter( 'preprocess_comment', 'limit_comment_length' );

加上评论字数限制以及关键词屏蔽后已经可以屏蔽大部分垃圾评论了。这个你可以自己试试看。

还有评论怎么办?看看下面这个终极杀手锏!

第三招:WordPress评论过滤日文字符和纯英文

还是把代码放到当前主题的 functions.php 里即可。两函数还可拆开执行。效果差不多。

//评论过滤 function refused_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';if(!preg_match($pattern,$comment_data['comment_content'])) { err('写点汉字吧,博主外语很捉急!You should type some Chinese word!'); } if(preg_match($jpattern, $comment_data['comment_content'])){err('日文滚粗!Japanese Get out!日本語出て行け! You should type some Chinese word!'); }return( $comment_data ); } if( dopt('d_spamComments_b') ){add_filter('preprocess_comment','refused_spam_comments'); }

这段代码可以让评论必须包含中文且不包含日文,纯英文也不行。当然如果你和国际友人有来往。就别弄了。

如果你使用的是Ajax无刷新评论可能会出现页面错位等。把上面的代码中的wp_die换成err即可。

使用上面这几招应该可以屏蔽绝大部分的垃圾评论了。如果你又更好的方法,欢迎在下面评论里分享。

免责声明:
1、本站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
2、本站部分作品内容是由网友自主投稿和发布、编辑整理上传,对此类内容本站仅提供交流平台,不为其版权负责,更不为其观点承担任何责任。
3、因行业及专业性有限,故未能核验会员发布内容的真实性及有效性,不为其负责,如有虚假或违规内容敬请准备材料图片发邮件到info@n360.cn举报,本站核实后积极配合删除。
4、如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时处理或删除。
 
打赏
 
更多>同类网站技术
0相关评论

推荐图文
推荐网站技术
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  免责声明  |  版权隐私  |  信息发布规则  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2020081222号
Powered By DESTOON