WordPress无插件防范垃圾评论的方法
虽然使用了 Akismet 博客垃圾评论的插件,拦截了成千上万的垃圾评论, Akismet 仅仅是进行了垃圾评论的拦截,所有的数据还是进了数据库了,其实 Akismet 这样做的目录是要让用户自己来重新审核一下看看有没有误进垃圾评论的留言。
最近在使用 wordpress 系统时,因为垃圾评论的问题甚是苦恼,因为有一些根本不是垃圾评论的留言也进了垃圾评论库,这倒没什么,关键是每天都有成千上万真正的垃圾进入到数据库里面,每天看着那么多的英文垃圾评论,甚至有的时候还有日文,韩文,乱七八糟的语言,还要在这里面去查看有没有误删的评论,着实头痛,这些发垃圾评论的人也不说有没有评论上,所有的都进了数据库,只能一次次的清空垃圾评论,直接导致数据库里的ID上万了。
首先想到的办法就是使用无插件来解决,让垃圾评论在进入数据库之前直接给屏蔽掉,不让其进入到数据库,但这里涉及到一个问题就是哪些是垃圾评论,如果进行了区分,用代码再来实现就很容易了。
这些天仔细观察了一下,基本上垃圾评论就是全英文的评论,或者全日文,韩文等,还有一些,中文式的“这个帖子绝对是今年以来我看过的最精彩的了”之类的灌水贴,这样的贴子会被 Akismet 直接送进垃圾评论,其实每天没几个,可以忽略不计,那么我们现在要做的就是要评论掉全英文,日文,韩文。。。等的评论了。
这里的更改就是要让评论中包括中文,否则就评论失败,修改的方法:直接更改主题目录下的 functions.php 文件,在将第一个 <?php 替换成:
<?php
function scp_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
// 禁止全英文评论
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');
如果评论中没有包含汉字,那么就不会评论成功,也实现了全英文垃圾评论的拦截了,这些垃圾评论也不会进入到数据库中了,当然 Akismet 基本上就成了摆设,据说还有其它的垃圾评论插件可以实现垃圾评论的拦截,暂时先不去研究了,如果你有兴趣的话,可以去研究一下。
没用多说之前,每天都删除几十条垃圾评论
我的网站是刚建立不久的seo博客站,没有英文评论,但有些日语的评论非常讨厌,只会手动删除。你这个方法中的包含中文,我想请问下:日文中有很多汉字的,能区分开来吗?
用的多说,免去了这些麻烦!
垃圾评论不可能能够屏蔽完的
禁止复制了……要是把不允许无头像者评论、那真的能去除所有垃圾评论//
每个知名的博客都有和垃圾评论战斗的历史吧,哈哈~
现在使用多说评论,感觉一些很明显的垃圾评论都会自动屏蔽掉,应该也不会进入数据库的吧,除非我们审核通过后,才会进入数据库。
没有审核的进不了数据库吧.
现在改用滑动解锁,然后屏蔽网址,基本好多了 ,以前是天天一大堆
看到不少blog都启用了滑动解锁,实在不想折腾了.
用社会化评论插件
社会化评论插件可以省去不少麻烦.
我还是喜欢折腾zblog
zblog比较适合国人使用,毕竟wordpress是老外开发的.
评论需要审核就OK了
评论需要审核但会产生很多垃圾信息,看到审核的信息都头疼.
最不想折腾代码~
我以前用国外的模板,挺好看的,每次一升级,自己修改的又被还原了。这是不爽的地方,
这就是郁闷的地方,我找人帮修改了2012模板,去掉了不少东西,现在不敢升级也是基于这个
主题的修改最好记录日志,换模板的时候再通过日志修改一篇.
用多说垃圾少了,但会误杀
虽然没用过多说,但感觉还可以.