前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你如何屏蔽WordPress垃圾评论的方法

教你如何屏蔽WordPress垃圾评论的方法

作者头像
于飞云计算
修改2019-07-09 11:31:55
1K0
修改2019-07-09 11:31:55
举报
文章被收录于专栏:技术经验分享

WordPress去掉多说评论之后,经常有各种垃圾评论出现在后台。不堪其扰,于是去找了一些办法来解决这个问题。一般都是说加一些屏蔽过滤的函数之类的。其实都差不多。不过有些特别长的就显得有点累赘了。

屏蔽WordPress垃圾评论的方法
屏蔽WordPress垃圾评论的方法

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

第一种

禁止非法词汇评论提交到数据库 把下边的代码放到当前主题的 functions.php 里,然后在后台“讨论”中设置你的黑名单即可。

代码语言:javascript
复制
//全百科网http://www.quanbaike.com/
//禁止垃圾评论提交到数据库
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', 'v7v3_fuckspam');

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

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

第二种

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

代码语言:javascript
复制
//全百科网http://www.quanbaike.com/
//限制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', 'Bing_minimal_comment_length', 8 );

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

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

代码语言:javascript
复制
//全百科网http://www.quanbaike.com/
//评论字数限制
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', 'v7v3_comment_length' );

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

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

第三种

WordPress评论过滤日文字符和纯英文 还是把代码放到当前主题的 functions.php 里即可。两函数还可拆开执行。效果差不多。

代码语言:javascript
复制
//全百科网http://www.quanbaike.com/
//评论过滤
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即可。

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一种
  • 第二种
  • 第三种
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档