给WordPress的评论添加算术验证码

2009-10-25 12:54 作者: 来源: 本站 浏览: 278 次 我要评论(4条) 字号:

     建博客最烦的就是每天进后台看到一大堆的垃圾评论(SPAM),WordPress有自带一个Akismet的插件,能过滤部份垃圾评论但效果不理想,那么多垃圾评论还需要手动删除。上网搜索,网上也有一些插件能够给评论加上验证码,但是插件用的多了对博客也不好,于是还是选择了用算术验证来解决这个问题,就是在用户添加评论的时候,多出一个输入框,让你输入系统随机产生的一个小算术题,输入正确了就可以正常添加评论,输入错误或者不填则提示错误,而不能进行添加评论。

具体方法如下:

 修改 wp-comments-post.php :

查找:

if ( ” == $comment_content )

在其上面添加代码:

//Fufu_checkcode
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __(‘Error: Please enter the correct results of the math problems.’) );
}
}
//Fufu_end

      然后修改当前主题目录下的 comments.php (我用的 iNove) ,在适当的位置添加代码,我是在提交按钮之前添加的,即查找:

<input name=”submit” type=”submit” id=”submit”

在其前面添加代码:

<?php $aaa=rand(0,5); $bbb=rand(3,9); ?><?php echo $aaa; ?>+<?php echo $bbb; ?>=
<input type=”text” name=”subab” id=”subab” size=”2″ tabindex=”5″ style=”width:20px” /><?php if ($req) _e(‘(required)’, ‘inove’); ?>
<input name=”aaa” value=”<?php echo $aaa; ?>” type=”hidden” />
<input name=”bbb” value=”<?php echo $bbb; ?>” type=”hidden” />

      如果你的主题不是 iNove 的话下面这段代码要做相应的修改,这段代码的意思是“(必填)”需要对应模板的语言。

<?php if ($req) _e(‘(required)’, ‘inove’); ?>

      修改好后,用用看实际的效果如何吧。

无觅相关文章插件,快速提升流量

网友评论已有4条评论, 我也要评论

  1. 厦门seo福建省厦门市 电信
    2010-01-03 19:41:29 1#

    照你的做了,可是我的怎么答案不对也会发表评论。。。。。。

    • Yao安徽省芜湖市 联通
      2010-01-04 16:58:03

      那你试试我这个,答案错误能发表评论吗?

  2. admin上海市金山区 电信
    2009-10-25 16:27:11 2#

    @ooaixt
    呵呵,不会改~
    再说那么简单的算术题,也不麻烦吧~

  3. ooaixt华中科技大学 韵苑学生公寓1栋
    2009-10-25 16:01:38 3#

    改成通过一次验证之后就不要再算数了吧?每次都要算的话有点麻烦咧

发表评论

*

* (保密)

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif

Ctrl+Enter 快捷回复

会员登录关闭

记住我 忘记密码

注册会员关闭

小提示: 您的密码会通过填写的"电子邮箱"发送给您.