手工增加WordPress评论算术验证码

自上次升级到wordpress3.0以后,防止垃圾评论的插件失效后我就很纠结,每天都能产生几十条垃圾评论。当然也找过好几个评论过滤插件,基本都很繁琐,大部分是采用生成图片做验证码的。不说我的空间支持不了生成图片,还影响页面的速度(多了一个动态图片)。最后还是决定参考Math Comment Spam Protection的思路,给评论增加一个算术表达式。
正好,之前见过有博客也是手工添加的。现在,我把办法抄过来了:
一、打开根目录下的wp-comments-post.php,查找if ( ” == $comment_content ),在此上面增加:

//手工验证码 2010/8/7 simonsu
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __(‘错误提示:请正确输入的两数相加的和。’) );
}
}
//手工验证码 2010/8/7 simonsu

二、在主题的comments.php文件中找到评论表单的位置,在适当的地方强烈插入如下代码:

<?php if (!$user_ID) : ?>
<?php $aaa=rand(0,5); $bbb=rand(3,9); ?>
<p><label>验证码:</label><input type=”text” name=”subab” id=”subab” size=”2″ tabindex=”5″ style=”width:50px” />=<?php echo $aaa; ?>+<?php echo $bbb; ?><small>(必填)</small><span>请输入两数的和。</span><input name=”aaa” value=”<?php echo $aaa; ?>” type=”hidden” /><input name=”bbb” value=”<?php echo $bbb; ?>” type=”hidden” /></p>
<?php endif; ?>

注意上面的尖括号需要改为半角下的。

三、搞定了。注意一点,我在文件中直接用了中文,因此你的文件编码必须为utf-8。

相关日志

发表于:2010-08-07 21:36:05 at 21:36 分类:代码 27条评论 Tags:, ,

27 Comments»

  1. 如果验证码输错会错位!

  2. test说道:

    加装了hypecache,验证码貌似有些问题

  3. 分享吧说道:

    我的网站弄了这些代码,不过还是会收到不少的垃圾评论,主要是英文的垃圾评论,还有几个中文的广告,好像是软件类自动提交的,不知道还有没有什么好的方法啊?

  4. 黄启福说道:

    试一下验证码

  5. july说道:

    测试看看行不行。

  6. […] 添加方法来自http://tsov.net,原文地址:http://tsov.net/manually-increase-the-wordpress-comment-arithmetic-code/,建议使用星期九这里帖的代码,因为原文出处所帖的代码是全角符号,直接使用会出现严重的问题——访客无法评论。 […]

  7. chanbee说道:

    很有用,转载了。

  8. magicwolf说道:

    不大想修改wordpress的代码啊。。。

  9. sky说道:

    哎呀,非常不错啊,谢谢了,垃圾评论真是大问题的啊

  10. 雨阳美眉说道:

    非常不错。就是升级麻烦一些。

  11. Code之行人说道:

    呵呵,今天突然看到很多垃圾评论,也想弄个看看

  12. ZCMHI说道:

    添加到博客成功,谢谢!

  13. roger说道:

    不错
    已经做好了!~

  14. 测试成功了,太感谢你了。不过有一些建议:“在适当的地方强烈插入如下代码”我觉得你如果截图的话会让大家更容易明白,因为有些人虽然使用WP,但是却看不懂代码,还有就是“注意上面的尖括号需要改为半角下的”其实你可以直接改为半角,有些人不仔细看的话,就直接复制了,结果一直出错。

    • simon说道:

      我-之所以说是适当的位置插入,是因为大家的主题不同,代码的结构、位置不同。我截图的话也只能说明我的代码位置。我发表时之所以改为全角,那是因为我的半角发表时,页面给解析掉显示不出来。只好写中文全角了。这点是不好,暂时我没有好办法。
      谢谢你的意见啦。

  15. 这个方法不错啊,我也正在为机器人的垃圾评论头疼,试一下这个方法。

  16. hzs说道:

    不知道为啥出错+乱码
    我还是找个插件吧~

  17. 电脑说道:

    牛逼啊

  18. 指舞六弦说道:

    我直接用akismet,省心呐

发表评论

(必填)

(必填)您的电子邮箱不会被公开。

*

正在加载信息...

Archives