只要你在网上有站点,不管是博客还是其它,也不管你的站点是不是刚刚建立的,在人类访客还没有到来之前,肯定有发送垃圾评论的机器人来过了,你当然可以安装插件来屏蔽这些垃圾评论,不过其实我们还有几种方案可供选择.
1.Akismet
官方的防垃圾插件,几乎是博客标配,屏蔽掉绝大部分垃圾评论是没有问题的,如果你需要安装插件,那么这个是必须推荐的,为什么呢,官方出品,肯定在兼容性和稳定性方面是最好的.
有不少第三方的评论托管服务也都集成了Akismet的服务,如果你使用了这些第三方的服务,那么这个插件也就不需要了.
2.禁止直接访问wp-comments-post.php
可以在你的.htaccess文件中加入下面的代码来禁止直接访问wp-comments-post.php
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>
注意:不要忘记替换“yourdomainname”为你的网址.
3.使用第三方评论托管系统
如果你不想使用任何插件或者修改任何代码,那么使用第三方的评论托管系统就非常适合你,基本上这些服务都有完善的防垃圾评论系统配置,而且由于不是你本地的评论系统,机器人程序也不会对你的站点造成大的影响.
目前可供选择的此类服务还是比较多的:
国外
国内
国内的加载速度比较快,国外的功能比较完善,按你的需要选择吧。
4.设置一个发送评论前需要勾选的选择框
在你的评论模板页面的适当位置加入下面的代码,一般是在comments.php这个文件中
<label for="enable"><input type="checkbox" name="enable" id="enable" onClick="apply()" class="enable_checkbox"> Check this box to enable the send button</label>
下一步在header.php中<head>标记中加入一段代码
<script type="text/javascript"> function apply() { var form_submit = document.commentform.submit; var form_checkbox = document.commentform.enable; form_submit.disabled=true; if(form_checkbox.checked==true) {form_submit.disabled=false;} if(form_checkbox.checked==false) {form_submit.enabled=false;} } </script>
参考