WordPress屏蔽垃圾评论

  最近一段时间被垃圾评论搞的头疼,要是隔几天没有登录后台的话,就会有上百条甚至几百条垃圾评论等待着你删除,因为评论里有一部分是真实的,所以在删除垃圾评论的过程中需要仔细一些,防止将读者的真实评论误删掉,有几次光清理垃圾评论就花了半小时左右的时间,让人叫苦连天啊。

  前段时间我写了一篇《如何屏蔽wordpress的垃圾英文评论》的文章,这个方法主要针对全英文的垃圾评论,如果垃圾评论里没有中文就会自动屏蔽,刚开始效果的确不错,几乎大部分的垃圾评论都屏蔽掉了(那段时间主要是英文垃圾评论),可后来好像专门跟我作对一样,英文里开始带中文了,而且频率越来越高,实在没办法,所以决心一定要找一个有效的方法把这些烦人的评论拦截掉。下面是垃圾评论的一些截图:

  

  

  在WordPress大学里,我找到了作者一直在用一个方法,据说可以屏蔽掉98%以上的垃圾评论,用了几天,效果确实不错,偶尔有几个漏网之鱼,手动删一下也不费事。方法:将下面这串代码粘贴到functions.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"] . ' (透过代理)' : $_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本身自带的一些功能,比如设置指定关键词拦截,在设置-讨论下,将一些广告中使用频率较高的词汇写在里面,比如:广告、淘宝、垃圾、裸体、减肥、美容等,这些双管齐下,效果自然更佳。

时间: 2024-09-20 21:16:24

WordPress屏蔽垃圾评论的相关文章

wordpress屏蔽垃圾评论的方法

大部分垃圾评论都是用自动化软件来发的,它会先GET一个页面,然后再往wp-comments-post.php文件POST内容. 例如: "GET /archives/589.html HTTP/1.1" 200 8490 "POST /wp-comments-post.php HTTP/1.1" 302 26 垃圾评论当中80%以上都是福建莆田市IP发的,鄙视下. 1.使用插件 垃圾评论过滤:Akismet插件 wordpress评论滑动解锁:myQaptcha插件

修改PHP脚本使WordPress拦截垃圾评论的方法示例_php技巧

拦截英文垃圾评论 由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用.虽然已经 2 年多没有更新,但还是可用的. 其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同: /* refused spam

WordPress过滤垃圾评论的几种主要方法小结_php实例

由于个人博客小站的空间与mysql空间往往有限,共享服务器资源也有限,所以垃圾评论一定要拦截在写入数据库之外. 更可气的是看到空间的统计,很几千的IP访问,但基本上都是这个垃圾评论的IP,所以实在不能忍 网上找了一些方法,主要有三个,如果将这三个一块使用基本上就可以拦截绝大多数垃圾评论 一.使用Akismet插件(https://wordpress.org/plugins/akismet/),后台申请一个免费的key,可以拦截99%的垃圾评论,但是这个插件还是会将垃圾评论写入数据库的,一会几千条

WordPress将垃圾评论阻挡在门外

今天,翼帆远航将介绍两种把垃圾评论阻挡在门外的方法. 一般情况下,我们会使用著名的反垃圾评论插件:Akismet 来阻止垃圾评论的入侵,Akismet 会将所有识别出的垃圾评论分离出来,并提供一键清理垃圾评论的功能,虽然 Akismet 几乎能够 100% 识别出垃圾评论,但由于每天的垃圾评论实在太多,天天点"一键清理"也不是办法,有没有更加实用的解决方案,能将垃圾评论在提交之前先拦截下来呢?   我们先来分析垃圾评论的类型: 纯英文或含有日文.韩文等他国语言的垃圾评论 固定某个网站用

Wordpress的垃圾评论何去何从

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 Wordpress作为一个优秀的博客型CMS深受广大IT从业人士的喜爱,因此很多it行业从业人员出于各种原因都喜欢建设一个自己的独立域名的Wordpress,记录一下自己工作的心得,记录一下自己的人生.写一个属于自己的独立博客已经成为了生活中的一部分,而且还能推广一下自己,就算不能起到推广作用,单纯的记录一下自己的人生也不错. 武汉SEO刘俊

WordPress过滤垃圾评论的几种主要方法小结

由于个人博客小站的空间与mysql空间往往有限,共享服务器资源也有限,所以垃圾评论一定要拦截在写入数据库之外. 更可气的是看到空间的统计,很几千的IP访问,但基本上都是这个垃圾评论的IP,所以实在不能忍 网上找了一些方法,主要有三个,如果将这三个一块使用基本上就可以拦截绝大多数垃圾评论 一.使用Akismet插件(https://wordpress.org/plugins/akismet/),后台申请一个免费的key,可以拦截99%的垃圾评论,但是这个插件还是会将垃圾评论写入数据库的,一会几千条

wordpress广告垃圾评论过滤(验证码、关键词)

方法一,给评论增加算术验证码 在主题目录的functions.php添加如下代码:  代码如下 复制代码     //算术验证码by vfhky     function spam_provent_math(){     $a=rand(5,15);     $b=rand(5,15);     echo "<input type='text' name='sum' id='sum' size='22' tabindex='3' value='动手又动脑,哦也 !' onfocus='if

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

一般都是说加一些屏蔽过滤的函数之类的.其实都差不多.不过有些特别长的就显得有点累赘了.当然比起官方的垃圾过滤插件肯定功能没那么强大,但是最起码会让你的身材很好看.不会在你的数据库弄那么多东西进去.今天分享几个实用小代码吧,而且效果还不错.大家也可以试试,不错可以收藏一下. 第一招:禁止非法词汇评论提交到数据库,把下边的代码放到当前主题的 functions.php 里,然后在后台"讨论"中设置你的黑名单即可. //禁止垃圾评论提交到数据库 function Banfuckspam($c

彻底的杜绝wordpress垃圾评论的方法

wordpress的垃圾评论可是异常的多啊,不过好在wordpress自带的插件能屏蔽80%以上的垃圾评论,机器自动发的,都被存到了垃圾评论里面. 今天看了看,垃圾评论每秒至少5个,虽然大部分垃圾评论被阻止了,但这样频繁的操作数据库,不仅数据库被搞大了,而且经常还有些漏网之鱼,导致我邮箱是不是弹出你有评论待审核,非常的烦啊.   网上搜索了下,很多垃圾评论插件,比如加验证码啥的,虽然有用,但是损害了用户体验呐.根据以往搞SEO的经验,也群发过垃圾信息. 这类垃圾评论都是先网上搜索对应的接口文件,