如果你的主题中集成了ajax评论,评论部分使用的是主题目录中的comments-ajax模版,所以可以删除或重命名Wordpress程序根目录的 wp-comments-post.php文件,机器人spam是通过直接读取这个文件,而不用填写前台的表单,实现自动留言。
安装Some Chinese Please插件,这个插件唯一的功能就是留言中无中文就无法提交,因为一般spam都是英文的。
用了上面方法后,基本我的博客一个月也难得见到一个spam,人肉spam除外,但只是极少数。
不建议安装启用WP集成的Akismet插件,会产生大量垃圾数据,停用或删除Akismet插件后,建议清理一下留在数据库中的无用数据。
如果你博客运行有年头了,并启用了Akismet插件,相信数据中的wp_commentmeta表,肯 定会很大,我的有12MB之多,占了差不多整个数据大小的一半,里面都是诸如akismet_as_submitted、akismet_result、 akismet_history等akismet插件生成的记录,既然插件都不用了,这些数据也同样没用了,删除。
方法:进入 phpMyAdmin ,选中wp_commentmeta表,清空或运行 sql 命令:
- TRUNCATETABLE `wp_commentmeta`
清理后,数据库由原来的27.8MB,变为现在的13.4MB,效果非常明显。之前一直未注意到Akismet插件产生的数据竟然如此臃肿,插件用多了就是麻烦。
针对人肉spam没有什么好的方法,只能把它相关信息加到评论黑名单中。
还有如果不想看到有人到处发链接,可以在讨论设置----评论审核----设置当某条评论包含超过 1个超链接时,将其放入等待审队列。
另外你还可以删除wordpress评论自动连接功能
默认情况下,WordPress会自动为评论中的网址加上链接。 这可能是有用的,但由于互联网上有大量的垃圾评论,您可能要删除此功能。
要删除评论中的自动网址链接,可以打开你的主题functions.php模版文件,加入以下内容:
- remove_filter('comment_text', 'make_clickable', 9);