php 反垃圾评论,WordPress不用插件就彻底杜绝垃圾英文评论!过滤垃圾评论提高WP运行效率!...

插件太多了,好多都可以实现加手势啊,滑动图案,验证码什么的都有,但是插件会增加一些ECS的消耗,今天就分享个不用插件就解决那些纯英文评论的办法!

每天打开博客一看有几十条留言,我还以为我火了,结果发现全他妈的是垃圾评论,而且都是全英文的。所以用下面这个方法就可以解决了!

WordPress防止垃圾评论纯代码法:willin kan的反垃圾评论代码

将以下代码放到你的主题的function.php中即可!

// 垃圾评论拦截

class anti_spam {

function anti_spam() {

if ( !current_user_can('level_0') ) {

add_action('template_redirect', array($this, 'w_tb'), 1);

add_action('init', array($this, 'gate'), 1);

add_action('preprocess_comment', array($this, 'sink'), 1);

}

}

function w_tb() {

if ( is_singular() ) {

ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",

"textarea$1name=$2w$3$4/textarea>",$input);') );

}

}

function gate() {

if ( !empty($_POST['w']) && empty($_POST['comment']) ) {

$_POST['comment'] = $_POST['w'];

} else {

$request = $_SERVER['REQUEST_URI'];

$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';

$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];

$way = isset($_POST['w']) ? '手动操作' : '未经评论表格';

$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;

$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";

}

}

function sink( $comment ) {

if ( !empty($_POST['spam_confirmed']) ) {

if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;

//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.

die();

//方法二: 标记为 spam, 留在资料库检查是否误判.

//add_filter('pre_comment_approved', create_function('', 'return "spam";'));

//$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];

}

return $comment;

}

}

$anti_spam = new anti_spam();

代码最后提供了两种对付垃圾评论的办法,一种是直接阻止评论,另一种是将垃圾评论放在Wordpress评论的待审核队列中,默认的是第一种,如果你想使用第二种,请给die();加上//,然后去掉“方法二”下面代码的//符号。

WordPress防止垃圾评论纯代码法:阻止全英文和含有日文字符评论

将以下代码放入function.php中,就可以阻止全英文的评论了!

function scp_comment_post( $incoming_comment ) {

$pattern = '/[一-龥]/u';

// 禁止全英文评论

if(!preg_match($pattern, $incoming_comment['comment_content'])) {

wp_die( "You make me sick! China number one! 反正你不是我炎黄子孙,别来我这里瞎BB" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'scp_comment_post');

将以下代码放入function.php中,就可以阻止包含任意日文字符的评论了!

// 禁止日文评论

function BYMT_comment_jp_post( $incoming_comment ) {

$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';

if(preg_match($jpattern, $incoming_comment['comment_content'])){

wp_die( "You make me sick! China number one! 反正你不是我炎黄子孙,别来我这里瞎BB" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'BYMT_comment_jp_post');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WordPress屏蔽国外垃圾留言评论,将文件里的代码放到当前主题的 functions.php 中; 的前面就可以了。代码参考:https://boke112.com/bkwd/4209.html 和https://loomob.com/57.html 将以下代码放到当前主题的 functions.php 文件最后一个 ?> 的前面: //防国外灌水 function scp_comment_post( $incoming_comment ) { // 禁止全英文评论 $pattern = '/[x7f-xff]/'; if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "您的评论中必须包含汉字! <br /> You should type some Chinese word (like "你好") in your comment to pass the spam-check, thanks for your patience! " ); } //禁止 A 链接 if(strstr($incoming_comment['comment_content'], "<a")){ wp_die( "您的评论中不能有 A 链接,请直接填写 URL 地址" ); } // 判断 中文字符占比 $len_all = strlen($incoming_comment['comment_content']); $len_st = mb_strlen($incoming_comment['comment_content'], 'UTF-8'); if(($len_all-$len_st)/(2*$len_st) < 0.5){ wp_die( "中文字符少于百分之五十" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'scp_comment_post'); //屏蔽关键词,email,url,ip function Shield_fuckspam($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"); err(__('不好意思,您的评论画里网站评论规则')); } else { return $comment; } } add_filter('preprocess_comment', 'Shield_fuckspam'); //过滤外文评论 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); } add_filter('preprocess_comment', 'refused_spam_comments'); //屏蔽带连接的 function Shield_link($comment_data) { $links = '/http:\/\/|https:\/\/|www\./u'; if (preg_match($links, $comment_data['comment_author']) || preg_match($links, $comment_data['comment_content'])) { err(__('别啊,昵称和评论里面添加链接会怀孕的哟!!')); } return ($comment_data); } add_filter('preprocess_comment', 'Shield_link');

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值