WordPress留言过滤:屏蔽国外垃圾留言(全英文、a链接、中文占比)

  • 2017-08-24
  • 565
  • 6
  • 2

一直被国外留言烦的不要不要的,大体特征是全文文评论,少数有a链接。专门刷某一文章,最近我关闭了一些文章评论好些了。

不要什么高级插件,往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');

这段判断代码可以根据自己实际情况删增

最后一提,能少用插件就少用插件!

评论

  • Waylee回复
    Firefox 55 Firefox 55 Android 6.0.1 Android 6.0.1

    防御国外广告留言测试hello waylee

  • 懿古今回复
    Google Chrome 55 Google Chrome 55 Windows 7 Windows 7

    用代码防一些纯英文、日文和放链接的,这样几乎就可以干净一大半了

  • 老地儿回复
    UC Browser 10 UC Browser 10 Android 5.0 Android 5.0

    很久很久以前就开始在用”禁止无中文评论”,目前还没有过一条垃圾评论。

    • Waylee回复
      Firefox 55 Firefox 55 Android 6.0.1 Android 6.0.1

      不喜欢过滤插件,今年一直被广告刷了几千条啊 :???:已经就靠这个代码啦,嘿嘿?

  • Naifu回复
    Safari 10 Safari 10 iPhone iOS 10.3.3 iPhone iOS 10.3.3

    现在也有好多中文垃圾评论,今天就一下子删了5条

    • Waylee回复
      Firefox 55 Firefox 55 Android 6.0.1 Android 6.0.1

      😛 快试试吧,我已经好几天没有收到垃圾评论了

发表评论