手工增加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。

相关文章
博客升级至wordpress 3.0后Math Comment Spam Protection失效本博升级到Wordpress 3.0解决wordpress自动修改htaccess的问题通过.htaccess更正国外空间的时区问题使用google浏览器chrome扩展来监视wordpress的评论更改wordpress的评论用户的主页为新窗口打开通用设置htaccess来优化wordpress实现yslow评分达到A优化wordpress的图库(相册)lightbox效果博客与附件分家了wordrepss的HTML编辑模式添加链接增加target="_blank"写Wordpress博客不自动生成缩略图的方法wordpress实现附件分离到另一服务器wordpress半角引号变成全角引号问题的解决解决tsov出国后无法直接在后台备份及发送邮件的问题Tsov-Weather plus升级至1.4版(解决UTF-8编码和指定城市的功能)TSOV的wordpress天气插件功能升级了[紧急通告]TSOV的wordpress天气插件访问量过大,请更换分站地址网站PR更新的感悟我的wordpress weather widget(天气插件)饲养蜘蛛技巧
    标签:wordpress验证码评论 评论数:26 发布于:2010-08-07 21:36:05

当前共有26条评论,我也要发表:

    我的名字:

    我的邮箱:

    作者:百家网络博客时间:2014-04-01 22:44:13回复

      如果验证码输错会错位!

    作者:test时间:2014-02-10 14:11:57回复

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

      作者:SimonSu时间:2014-03-08 09:34:20回复

        我的一直很正常,但是后台升级代码后,这个代码会被重置,需要手工再加上。

    作者:分享吧时间:2013-04-09 10:39:04回复

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

      作者:SimonSu时间:2013-04-10 08:28:27回复

        有很多方法,比如把表单放到JS里。你百度一下。

    作者:黄启福时间:2013-01-28 11:38:34回复

      试一下验证码

    作者:july时间:2012-07-28 15:59:25回复

      测试看看行不行。

    作者:chanbee时间:2012-03-10 12:03:06回复

      很有用,转载了。

    作者:magicwolf时间:2011-01-01 01:08:29回复

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

      作者:simon时间:2011-01-01 16:22:12回复

        那你直接用插件就行呀。

    作者:sky时间:2010-12-15 08:18:36回复

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

    作者:雨阳美眉时间:2010-12-07 19:57:51回复

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

      作者:simon时间:2010-12-07 20:49:53回复

        嗯,升级时是比较麻烦,得再改一次。

    作者:Code之行人时间:2010-12-04 18:41:35回复

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

      作者:simon时间:2010-12-04 18:49:52回复

        用这方法很管用。

    作者:ZCMHI时间:2010-11-27 22:01:54回复

      添加到博客成功,谢谢!

      作者:simon时间:2010-11-27 23:44:57回复

        很管用吧,哈哈。

    作者:roger时间:2010-09-13 16:42:27回复

      不错 已经做好了!~

    作者:许亚成 电子商务策划时间:2010-09-04 12:38:04回复

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

      作者:simon时间:2010-09-04 19:09:15回复

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

    作者:许亚成 电子商务策划时间:2010-09-04 12:16:41回复

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

    作者:hzs时间:2010-09-03 16:52:28回复

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

      作者:simon时间:2010-09-03 17:21:22回复

        你什么打开文件来编辑?建议用EditPlus,然后别存为,选一下编码为utf-8.

    作者:电脑时间:2010-08-21 02:01:12回复

      牛逼啊

    作者:指舞六弦时间:2010-08-20 16:05:49回复

      我直接用akismet,省心呐

      作者:simon时间:2010-08-20 19:56:56回复

        akismet的误杀率听说很高。而且能不用插件就不用插件。哈。