wordpress关键词黑名单:反垃圾评论再升级(非插件)
1 老话题:wordpress垃圾评论
wordpress垃圾评论由来已久,在各位博主的有力反抗下,垃圾评论完成了一次又一次的升级。对wp新手来说,肯定不会想到自己的博客会被spam盯上。甚至还可能真认为是某老外关顾了自己的文章(博主曾经就二逼的用英文回复过)。等垃圾评论越来越多时,才仿然大悟。对于一些用wp时间也比较长的博主来说,一些与文章话题无关的评论也是很烦人。为了增强wordpress免疫力,尽量从根源上解决wordpress博客中的垃圾评论,博主也不能闲着,下面就贡献小小的一份力量。
2 博主的反wordpress垃圾评论历程
1、博客刚建立时,用的是wordpress垃圾评论屏蔽神器——Akismet,确实效果很好;
2、不过后来由于博主对插件不太看好,所以就改用了Willin Kan写的非插件的方法,效果也是挺不错的,就是代码量稍微有点大。具体大家可以参考一下:《屏蔽wordpress垃圾评论的方法(插件和非插件)》。
3、之后没用Willin Kan的小墻工具了,直接使用验证码,发觉挺管用的。详见文章《博客优化第二波(三):wordpress评论添加算术验证码》。
4、启用这个新主题后,集成 “访问安全提示” 和 “网站安全认证” 的功能,效果也不错。详见文章《关于博客评论的链接审查、网站认证的声明》。
5、最近设置无Gravatar头像的用户无法提交评论,大家反馈意见不一。详见文章:《wordpress中限制没有Gravatar头像的访客提交评论》。
6、昨天再次升级防护,新增用户昵称、评论内容提交时的黑名单中的关键词验证。也是本篇文章的主题,下面是具体的实现代码。
3 修改主题comments-ajax.php文件
在主题目录下的comments-ajax.php文件中,大概60行左右的位置(刚取得用户提交的评论表单中的$_POST['author']等字段)。然后在该文件中加上下面的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
4 后记
通过上面这段简单代码,我们就实现了提交对评论输入的用户昵称、评论内容进行了黑名单中的关键词的校验。一旦匹配到了上面的任何一个词语,例如出现了www,那么就提示用户“广告必删,多谢理解!”,效果如下图所示。这样算是又给博客上了一道保险,增强了wordpress反垃圾评论的免疫力,而且还是非插件的方法实现的哟!
5 BUG修复:Update 2013.09.24 20:20
经过 @坏坏博客 童鞋的邪恶回复测试,发现上面代码有未考虑周全之处。正在修改中,具体见下一篇文章《再议wordpress反垃圾评论:都是strpos函数惹的祸》。最后向 @坏坏博客 童鞋致敬!
Comments »