打击垃圾评论

0条评论

博客开通后不可避免地会遇到垃圾评论。而WordPress不仅内置反垃圾评论工具,如果用户需要为自己的博客添加多重保护,还有很多反垃圾评论的WordPress插件可供使用。

没有哪一种方法能够一次性解决所有垃圾评论问题;垃圾评论发送者通过各种方式发送垃圾评论。因此作为博客/网站管理者,我们应该考虑多种防护措施。垃圾评论发送者改变方式时,我们也要及时作出相应反应。

免责声明:本文介绍的插件和代码所有权归其开发者本人,开发者负责插件和代码的技术支持。对用户因使用插件和代码而产生的后果,WordPress概不负责。

选择标准:本文中列出的代码是曾在WordPress支持论坛Hackers邮件列表中发布的、且有用户评论“我试验了该代码,一切顺利”的有效代码。

不符合以上标准的代码或链接如果被添加到此页面,一律删除。

反垃圾评论斗士——Akismet

WordPress现有版本内置 Akismet插件。Akismet将一种独特算法与一个创建于社区的数据库相结合,以此区别合法评论和垃圾评论。

我们可以在WordPress控制板的“插件”菜单中激活Akismet插件。Akismet被激活后,“评论”菜单下多出一个菜单选项,选项下是Akismet“捕获”的垃圾评论。

有垃圾评论进入Akismet网络时,我们可以在“评论”菜单中将该垃圾评论标识为“垃圾评论”,不要删除它。被标为“垃圾评论”的信息会被发送给Akismet并添加到社区创建的数据库中。

我们可以定期查看Akismet插件菜单,检查是否有合法的消极评论被Akismet误认为是垃圾评论而被拦截。如果有,可以将这些合法评论标记为“非垃圾评论”,点击页面下方的“解除垃圾评论”按钮,将评论移出“垃圾评论”列表。

我的评论被Akismet拦截了,怎么办?

Akismet通过用户对评论的标记(是否垃圾评论,是否合法评论)积累自己对垃圾评论的判断。如果我们的合法评论被Akismet看成是垃圾评论,只要把这些评论从Akismet菜单中移除就可以了。两到三次后,Akismet开始接受类似合法评论,不再将它们作为垃圾评论拦截。

Akismet还可能将博客访问者的评论视为垃圾评论并拦截这些评论。如果我们无法定期查看Akismet菜单,可以将我们的邮箱地址公开给访问者,如果他们没有在我们的博客上看到他们的评论,可以通过邮件通知我们。

随着数据库更新和Akismet升级,我们将不得不重复查看Akismet菜单这一过程。

如果以上方法仍然不能解决问题,请到Akismet网站寻求帮助。

默认反垃圾评论工具

下面介绍一些除Akismet之外的WordPress自带反垃圾评论工具。

评论中的链接数

垃圾评论发送者经常在所发送的评论中添加大量链接,因此我们可以事先规定评论中允许出现的最大链接数量,以此防止垃圾评论。

  • 进入“设置”菜单下的“讨论”选项
  • 找到页面上“评论审核”区域
  • 该区域中有一个输入框显示的是评论中允许的超链接数,WordPress默认该输入框中的值是2。我们可以将值设为1,进一步防止垃圾评论。

注意:不要将值设为0或甚至不设任何值,这会使所有评论都进入等待审核队列——这可不是我们想要的结果。

评论垃圾词

当我们遇到某个不在垃圾词列表上的词或词组时,可以把这些词添加到垃圾词列表。同样地,我们也可以把常见垃圾评论用语中列出的垃圾词添加到WordPress评论垃圾词中。

  • 进入“设置”菜单下“讨论”选项页面的“评论审核”区域
  • 在其中的文本框中输入各种垃圾词
  • 垃圾词应各行书写,每个垃圾词各占一行,各个词之间无需空格。如果出现空行,所有评论都会成为“等待审核”状态。
  • 当评论的内容、评论者名称、URL、电子邮件或者 IP 中包含这些垃圾词时,WordPress会将这些垃圾词归入等待审核队列。

评论黑名单

“设置”菜单下的“讨论”选项页面中有一个版块叫做“评论黑名单”。我们可以在这里列出博客评论中禁止使用的词语。

添加黑名单时一定要加倍注意。符合“评论黑名单”描述的评论会被直接过滤而不给出任何通知。被过滤的评论会被标记为[spam]存储在数据库中,但不会出现在博客上。那些被标记为[spam]的评论的主要作用在于指导相对“智能”的反垃圾评论插件,例如Akismet

谨慎选择黑名单垃圾词!

记住,垃圾词是匹配包含的,因此将垃圾词放在待审区更加恰当。如果将单词tramadol拉入黑名单,那么WordPress会自动删除所有包含tramadol的评论,包括所有包含tramadols,bigtramadols等单词的评论。但如果将ass拉入黑名单,WordPress会删除所有包括ass、asses、assistance、passionate、assumption等单词的评论。

审核所有评论

根据我们的WordPress网站/博客上的评论总数以及我们期望对评论的控制力度,有时我们可以亲自审核网站上所有评论。

在“设置”菜单下“讨论”选项中,点击管理员审核所有评论(无论下方是否有其它内容)旁的复选框。

评论者必须成功发表过评论

我们也可以在“设置”菜单下“讨论”选项中允许之前成功发表过评论的用户无需我们的审核再次发表评论。在“讨论”选项页面中点击评论者必须成功发表过评论旁的复选框。

只有登录用户才可以发表评论

  • 在“设置”菜单下的“常规”选项中,在“成员资格”一行中选中“任何人可以注册”
  • 之后在“设置”菜单下的“讨论”选项中,选择“用户必须注册并登录才可以发表评论

用户评论通过审核后通知用户

用户希望自己提交的评论能够立刻出现在我们的博客上。如果我们设置了评论审核却不告诉用户,有些用户就会认为评论提交时出错,于是会不停地重复提交自己的评论。为了阻止这种情况发生,同时为了避免让用户产生不悦心理,我们可以通过以下方式通知用户,他们的评论正在审核中:

如果使用弹出式评论,编辑comments-popup.php文件,如果不使用弹出式评论,编辑comments.php文件。

在文件中查找以下代码:

<p>  
<input name="submit" type="submit" tabindex="5" value="<?php _e("Say it!"); ?>" />  
</p>  

将之改为以下代码,可以在代码中加上自定义信息:

<p>
<blockquote>
Comment moderation is in use. Please do not submit your comment twice -- it will appear shortly
</blockquote>
<input name="submit" type="submit" tabindex="5" value="<?php _e("Say it!"); ?>" />
</p>

反垃圾评论插件

WordPress官方插件目录WordPress插件数据库中有很多插件可以帮助WordPress打击垃圾评论。

修改评论文件

不推荐普通用户进行以下操作。以下操作涉及对WordPress核心代码的改动。注意事先进行备份

删除wp-comments-post.php文件

这是消除垃圾评论的终极解决方法。删除wp-comments-post.php后,包括垃圾评论内的所有评论都会被禁止。任何用户都不能在网站上发表评论。

删除wp-trackback.php文件

这是消除垃圾引用通告的终极解决方法。删除该文件后,包括垃圾引用通告内的所有引用通告都会被禁止。任何用户都不能引用网站上的文章,因此请谨慎操作。

通过.htaccess禁止用户权限

使用Apache服务器时可以改动.htaccess文件。可以到Apache网站和互联网上查找更多这方面信息。

nofollow属性

nofollow属性是不为垃圾评论发送者增加PR值(页面排名)的方法之一。根据Google的说法,“看到超链接上的nofollow属性(rel="nofollow")后,我们统计网站搜索结果时就不会追踪这些超链接了。”WordPress 1.5后,评论区中所有链接都被自动加上了nofollow属性。

参见