首页 > 日志 > WordPress 防止垃圾评论算术验证码安装手记

WordPress 防止垃圾评论算术验证码安装手记

2009年6月2日 发表评论 阅读评论

wordpressBlog防止垃圾评论一直是个头痛的问题,以前我用Bo-Blog的时候整天N多垃圾评论,带N多连接,后来把评论需要审核后显示,但这样不能解决根本问题,每天后台删除垃圾评论就要花费不少时间,近日Blog重开换成WordPress后也要考虑这个问题WordPress有自带一个Akismet插件,能过滤部份垃圾评论但效果不理想,然后试了好几个插件都也不太理想,在Google搜索了老半天,后面听说用算术验证方式来做为验证码效果很不错,并介绍了款插件:Math Comment Spam Protection,试用了效果还可以,但后面又搜索到老二的博客上有更简单的方法可以实现这个功能(本人不喜欢装太多插件,理论上插件装太多会影响速度,还有可能造成一些不兼容的问题)。于是把 Math Comment Spam Protection 插件删除后按老二的博客所提到的方法进行了改造,并做了稍稍修改,使其能通过W3C验证。

方法如下:

修改 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 if (!$user_ID) : ?>
<?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” />
<?php endif; ?>

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

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

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

分类: 日志 标签: ,
  1. 2009年6月22日10:35 | #1

    我们的网站风格一样,,哈哈,,
    正好找验证码,就找到你这了,
    验证码不错,用了,多谢!

  2. 2009年6月22日11:05 | #2

    对了,问一下,你网站上用的显示代码的插件是什么?
    我发的代码都被执行了。。。

  3. 2009年6月24日15:23 | #3

    @yaiba
    你可以用 WP-SYNTAX 这个插件。

  4. 2009年7月22日00:11 | #4

    你好,呵呵,我今天也想自己弄一个这个功能的,但是不想去找WordPress具体在哪添加代码~~所以搜索到了你这里~~呵呵,这回代码都不用自己写了,用了你的代码,怕什么时候换主题什么的忘记,就把你的文章转到我的博客了,我没开Trackback~~所以留言告诉你一下,转载没问题吧?我会注明出处的~~

  5. 2009年7月23日13:12 | #5

    @孤毒老鼠
    呵呵,没问题。

  6. 2009年11月29日16:19 | #6

    找到了。学习了。呵呵~~

  7. 2009年11月30日14:35 | #7

    正在找验证码方案,楼主的方法很好,学习了。

  8. 2009年12月1日23:48 | #8

    hi,实在感谢,转载了您的这个手记

  9. 呵呵
    2009年12月23日14:23 | #9

    测试仪啊

  10. 2010年5月23日15:06 | #10

    转载了啊

  11. 2010年6月15日01:29 | #11

    谢谢博主,正好用得到,文章也一起转了

  12. 2010年7月28日00:16 | #12

    呵呵~和我用的一个主题,正好~

  13. 2010年8月10日23:03 | #13

    借鉴了,而且已经修改成功,谢谢~

  14. 2010年8月24日12:05 | #14

    主题很好哦~分享之

  15. 2010年8月31日16:10 | #15

    我在使用了。谢谢分享

  16. 雨草田
    2012年11月20日14:04 | #16

    楼主怎么设置验证是否正确呢~

  1. 2009年10月23日15:20 | #1
  2. 2010年4月6日12:12 | #2
  3. 2010年4月7日13:27 | #3
  4. 2010年5月23日15:12 | #4
  5. 2010年9月23日22:34 | #5
订阅评论
3+5= (必填)