芒果小站

  1. 全球最具业界良心的主机 - DigitalOcean

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - DigitalOcean

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - DigitalOcean

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
18

为 WordPress 添加评论验证码

作者 芒果/分类 教程/发布于 2009-06-21 00:50

垃圾信息爆发的年代,SPAM 犹如洪水猛兽肆意泛滥,由此也导致验证码无处不在的现状。对于 WordPress 而言,可以使用官方提供的 Akismet 插件来有效防范垃圾评论的发布。

鉴于 Akismet 治标但不治本,也可通过修改代码,为评论表单加上简单的算术验证。之前芒果在多处见过这种方法,现作简要分享。

首先,编辑 WordPress 根目录下的 wp-comments-post.php 文件,找到以下代码(一般位于 70 行):

if ( '' == $comment_content )

在此语句之前,添加如下代码:

//算术验证开始
if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$sub = trim($_POST[sub]);
if ((($a+$b)!=$sub)|| empty($sub)){
wp_die( __('错误:请输入正确的算术题结果。') );
}
}
//算术验证结束

然后,找到当前主题的评论模板,一般为 comments.php 文件。在提交按钮之前,插入以下代码:

<?php $a=rand(0,5); $b=rand(0,5); ?>
<input id=sub tabindex=3 size=22 name=sub />
<input type=hidden value="<?php echo $a ?>" name=a />
<input type=hidden value="<?php echo $b ?>" name=b />
验证:<?php echo $a ?>+<?php echo $b ?>

其中使用 rand() 函数产生随机数,计算难度可根据需要设定种子。

算术验证加上 Akismet 应该能全面防范 SPAM 信息。如果这样还有大量垃圾评论,那就得好好检讨自己的 RP 了。

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/add-comment-verification-code-for-wordpress/" title="为 WordPress 添加评论验证码" rel="bookmark">为 WordPress 添加评论验证码 | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 18 条群众意见

  1. bolo /2009-06-21 09:06

    Akismet 已经够用了,加上验证码的话估计留言的人会变少。 回应

    #1
  2. 龙子 /2009-06-25 03:45

    同意。 回应

    #2
  3. 一只坏猫 /2009-06-27 19:30

    嘿嘿,偶用了一个强大的验证码!嘿嘿… 回应

    #3
  4. kaysnoopy /2009-07-01 08:18

    呵呵。芒果没有验证码哦。 回应

    #4
  5. ?
    IInterest » [转]WordPress技巧:为博客增加评论验证码功能 /2009-07-27 17:44

    […] 转载自 芒果 […] 回应

    #5
  6. 冰点博客 /2010-11-28 19:56

    你网站怎么不加验证呢? 回应

    #6
  7. 28致富网 /2011-01-09 12:15

    主要是软件群发评论的多。 回应

    #7
  8. 天天npc /2011-06-08 23:01

    拿来试试~~ 回应

    #8
  9. 网络营销 /2011-07-12 11:20

    学习了,拿来试试 回应

    #9
  10. phrnet /2011-07-23 17:54

    试一下 回应

    #10
  11. hezll /2011-08-25 18:12

    有个bug 见http://www.shotki.com/hezll/2011/08/simplecodeakismet/

    验证,加减法.注意此文中有个bug empty($sub)应该改为!isset($sub).否则如果sub为0就坏啦! 回应

    #11
  12. 承德自助游 /2011-09-02 11:02

    对吧 芒果小站为啥没有评论验证 回应

    #12
  13. Yusky /2011-09-30 02:01

    暂时不需要~~收藏备用 回应

    #13
  14. 烘干机 /2011-10-06 12:02

    我正在调试我的目录博客 正好加上 回应

    #14
  15. Elaanzhou /2012-05-25 15:18

    验证码样式也随机就比较好了 回应

    #15
  16. HuGtion /2012-09-25 19:16

    试一下去。。。 回应

    #16
  17. 海岳之云 /2013-05-11 11:00

    Akismet 用起来觉得还行,不过就是看着有多那些垃圾评论就是很碍眼。楼主的帖子先收藏起来备用。 回应

    #17
  18. 生活点滴 /2013-05-17 16:26

    日垃圾上千,怎么破啊,我已经把评论关闭了。。。。 回应

    #18

下面我简单说几句