网站全新改版,使用全新主题,精简文章,重新分类。同时建议大家使用FireFox、Opera、Safri、IE9+等高级浏览器访问!

如何防止wordpress博客被垃圾评论污染

Wordpress 木华澄 3605℃ 0评论

核心提示:本文主要讲述了几种防止wordpress博客垃圾评论的方法,来净化自己的博客,营造一个非常干净有意义的博客。

垃圾评论问题应该是所有博主都会遇到的问题,在我的建站初期,我的博客主要都是自己的朋友,还有很多一起建站的朋友和那些从搜索引擎来寻找有用信息的朋友的访问,评论相对来说,还比较纯净,很少有垃圾评论。但是最近这段时间开始,博客开始出现大量的垃圾评论。每天基本上少的时候几条十条垃圾评论,最多的一天甚至上几十上百条垃圾评论。而且,大家也都知道,如果我们的博客上出现大量不和谐的内容,我们的博客被封杀被墙会是迟早的事情,所以有效的防止垃圾评论的产生对于个人博客的发展非常有意义。

那么,如何有效的防止垃圾评论呢?下面我把自己的实践经验和从网上学来的方法和大家分享。

一、使用AKismet插件

这个插件在wordpress安装好之后就自带了,但是需要大家去自己申请一个Akismet key才可以使用,大家可以根据插件给出的链接地址去申请个人key,这个插件对于个人使用时,可以免费的申请key。下面给大家看看Akismet插件的效果展示。

spam of one year

从图中可以看出来,已经为我过滤了42529+1186=43715条垃圾评论,其中有58条垃圾评论是漏掉的,被我手动判定为垃圾评论,其中有109条垃圾评论被我手动改成非垃圾评论,这是我近一年的,所有的垃圾评论情况,以及Akismet为我过滤的情况,可以看出来,Akismet在我的博客垃圾评论过滤中的准确率现在是99.62%。

刚开始使用Akismet的时候,准确率还是比较低的,很多非垃圾评论都被放在了垃圾箱中,但是Akismet会随着时间不断学习,拦截的准确度会越来越高,到目前为止,对于我的博客来说,误伤率已经很低了。

二、自带的防垃圾评论功能

点击wordpress后台的设置,讨论,其中就可以看到有评论审核和评论黑名单两个设置项,

评论审核项

“当某条评论包含超过 个超链接时,将其放入等待审队列。(垃圾评论通常含有许多超链接。)

当评论的内容、评论者名称、URL、电子邮件或 IP 地址中包含其中任何关键字时,系统将自动把评论放入待审队列。一行一个关键字或 IP 地址。WordPress 也会在词中匹配关键字,例如“press”亦将匹配“WordPress”。”

评论黑名单

当评论的内容、评论者名称、URL、电子邮件或 IP 地址中包含其中任何关键字时,系统将自动将评论标记为“垃圾评论”。一行一个关键字或 IP 地址。WordPress 也会在词中匹配关键字,例如“press”亦将匹配“WordPress”。

如果你按照下图进行了勾选,那么就不用填写评论审核项了,因为你的所有的显示出来的评论都是人工审核的。

但是填写评论黑名单的作用非常明显,在这里可以屏蔽一些敏感词,以及那些广告词,基本上一般的词语都可以在这里进行拦截设置。

三、其他防垃圾评论插件

比如说Math Comment Spam Protection或者Some Chinese Please等插件,或者产生一些随机码的插件来防止评论机器人的垃圾评论。因为就算是Akismet拦截住了垃圾评论,但是这些垃圾评论还是占用着数据库,这些垃圾评论还是进入了评论数据库,自己每次都是手动批量删除,特备是有大量垃圾评论的时候,就直接点击上面的全选,批量删除,这样很难说不会误伤个别被误判的非垃圾评论。所以安装插件也是不错的选择。这样直接杜绝了机器人的评论进入数据库,效果是很不错的。

四、代码来实现防垃圾评论

这里就直接引用了hackerzhou的博客上的方法:另类WordPress防垃圾评论方法,来自hackerzhou的博客。

在博客逐渐进入轨道之后,特别是被搜索引擎索引了之后垃圾评论也就随之而来,这个问题相当普遍。最近明显感到本博客的垃圾评论变多了,虽然用Akismet可以拦截掉,但是由于Akismet有一定的误拦几率,时不时还得去翻翻垃圾箱。

网上普遍的方法是用那些验证码的插件,或者用Math Comment Spam Protection之类的算术插件来防止机器人恶意评论。我不太喜欢用额外的插件,毕竟会有导致不稳定的风险。而且我用了WP Super Cache做html的缓存,那些基于hidden字段等需要动态修改html代码的方法对我就不太适用了。今天早上突然想到为何不直接修改提交评论的表单呢?因为那些自动发文的大都是程序根据wordpress的模板,向wp-comments-post.php通过POST方式提交数据,如果把那些提交参数的名字修改掉就可以很大程度上过滤掉垃圾评论(并不严格,要是那些自动评论的软件采用页面自动分析等手段获得input的name属性就无效了,不过我觉得它们没有那么智能)。

修改方法如下:

1.修改html表单(找到你所使用的主题目录下的comments.php文件,打开并编辑)
比如我就将input的name属性都加上了hz-hc-前缀,并修改id属性,大家可以随心所欲修改,最好有规律点,否则后面修改wp-comments-post.php的时候会比较抓狂

 <input type="text" name="hz-hc-arg0" id="arg0" .../>  
 <input type="text" name="hz-hc-arg1" id="arg1" .../>   
 <input type="text" name="hz-hc-arg2" id="arg2" .../>   
 <textarea name="hz-hc-arg3" id="arg3" .../>

2.修改后台(找到wordpress根目录中的wp-comments-post.php,打开并编辑)
$POST[“XXX”]中XXX的就是上面html表单中你自己制定的input的name

    $comment_author = (isset($_POST['hz-hc-arg0'])) ? trim(strip_tags($_POST['hz-hc-arg0'])) : null;
    $comment_author_email = (isset($_POST['hz-hc-arg1'])) ? trim($_POST['hz-hc-arg1']) : null;
    $comment_author_url = (isset($_POST['hz-hc-arg3'])) ? trim($_POST['hz-hc-arg2']) : null;
    $comment_content = (isset($_POST['hz-hc-arg3'])) ? trim($_POST['hz-hc-arg3']) : null;

修改好之后还需要去修改主题的js文件,比如我用的mystique主题就是修改jquery.mystique.js文件,查找target_id=”#comment”;修改成上面定义的input的id,target_id=”#arg3″;

这样就搞定了,不用任何插件。貌似后来查到有一款插件也是这么做的,只不过跟Math Comment Spam Protection整合了一下,加上了些算术验证。

以上是几种防止垃圾评论的方法,希望对大家有用。

文章于2013年6月9日最后更新(发布于2012年8月24日)。

转载请注明:程春杰博客 » 如何防止wordpress博客被垃圾评论污染

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(22)个小伙伴在吐槽
  1. :mrgreen: 似乎有点用
    Mr.Wu2015-05-17 18:15 回复
  2. 我就碰到这样的情况,一个暑假,博客被5000多垃圾评论包围,最后执行SQL清理数据库,把整个博客搞残了。可恶的很
    刚哥笔记2015-05-11 18:45 回复
    • 是啊,要是博客充满垃圾评论,就跟地里长满杂草
      程春杰2015-05-12 10:26 回复
  3. 好多人都喜欢知更鸟主题,原本我也用的。现在不用了
    王英学博客2014-04-15 15:36 回复
    • 为啥不用了呢,是不是觉得被用滥了
      程春杰2014-04-16 21:22 回复
  4. 恩 不错 可以用
    减肥方法2013-09-26 23:20 回复
  5. 学习了 支持下
    钻石画2013-06-10 13:47 回复
  6. 我的wp博客为什么评论提交不了 博客刚弄还是个菜鸟 请大家帮帮忙哈 谢谢!
    零贰2013-05-24 09:25 回复
    • 你是说你的博客没有办法提交评论吗,现在好了没
      程春杰2013-05-28 19:19 回复
    • 是偶尔的,还是一直无法评论呀
      程春杰2013-05-28 19:19 回复
      • 一开始行的 然后不知道改了哪里就不行了一直都不行
        零贰2013-07-08 17:27 回复
        • 应该是没问题的,是不是你的KEY出问题了
          程春杰2013-07-21 23:02 回复
  7. 删除Wordpress程序根目录的wp-comments-post.php文件
    清风2012-10-26 02:43 回复
  8. 自带的插件貌似就可以解决吧,呵呵也不是很懂。欢迎博主回访,多多互访交流!
    wordpress博客2012-08-29 20:15 回复
    • 文章中有说明
      程春杰2012-08-30 08:13 回复
  9. 我刚用wp那会儿很多垃圾评论呀。后来装了插件就好了
    坏坏2012-08-27 14:07 回复
    • 恩,是的,安装插件之后就省事很多,不用为垃圾评论浪费很多时间了
      程春杰2012-08-27 14:28 回复
  10. 用知更鸟主题可以直接删除某文件就可以了
    safecn2012-08-26 17:11 回复
    • 是删除哪个文件呀
      程春杰2012-08-26 23:55 回复
  11. 我一直用AKismet的,感觉很不错
    脚气好啦2012-08-26 15:53 回复
    • 这个确实不错,相当拉风的一个插件
      程春杰2012-08-26 18:55 回复
  12. 好好加油
    小徐2012-08-26 10:36 回复