2013-02-09 |   |  wordpress技巧

只要你在网上有站点, 不管是博客还是其它, 也不管你的站点是不是刚刚建立的, 在人类访客还没有到来之前, 肯定有发送垃圾评论的机器人来过了, 你当然可以安装插件来屏蔽这些垃圾评论, 不过其实我们还有几种方案可供选择.

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. 使用第三方评论托管系统

如果你不想使用任何插件或者修改任何代码, 那么使用第三方的评论托管系统就非常适合你, 基本上这些服务都有完善的防垃圾评论系统配置, 而且由于不是你本地的评论系统, 机器人程序也不会对你的站点造成大的影响.

目前可供选择的此类服务还是比较多的:

国外

JetpackDisqusIntenseDebate

国内

多说友言

国内的加载速度比较快,国外的功能比较完善,按你的需要选择吧。

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>

 

参考

发表评论

电子邮件地址不会被公开。 必填项已用*标注