/* 336x280*/
垃圾信息爆发的年代,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 了。
/* 336x280*/
版权所有,转载请注明出处。
转载自 <a href="http://www.mangguo.org/add-comment-verification-code-for-wordpress/" title="为 WordPress 添加评论验证码" rel="bookmark">为 WordPress 添加评论验证码 | 芒果小站</a>
已经有 14 条群众意见
- bolo
#1/2009-06-21 09:06Akismet 已经够用了,加上验证码的话估计留言的人会变少。 回应
- 龙子
#2/2009-06-25 03:45同意。 回应
- 一只坏猫
#3/2009-06-27 19:30嘿嘿,偶用了一个强大的验证码!嘿嘿… 回应
- kaysnoopy
#4/2009-07-01 08:18呵呵。芒果没有验证码哦。 回应
- IInterest » [转]WordPress技巧:为博客增加评论验证码功能
#5/2009-07-27 17:44[...] 转载自 芒果 [...] 回应
- 冰点博客
#6/2010-11-28 19:56你网站怎么不加验证呢? 回应
- 28致富网
#7/2011-01-09 12:15主要是软件群发评论的多。 回应
- 天天npc
#8/2011-06-08 23:01拿来试试~~ 回应
- 网络营销
#9/2011-07-12 11:20学习了,拿来试试 回应
- phrnet
#10/2011-07-23 17:54试一下 回应
- hezll
#11/2011-08-25 18:12有个bug 见http://www.shotki.com/hezll/2011/08/simplecodeakismet/
验证,加减法.注意此文中有个bug empty($sub)应该改为!isset($sub).否则如果sub为0就坏啦! 回应
- 承德自助游
#12/2011-09-02 11:02对吧 芒果小站为啥没有评论验证 回应
- Yusky
#13/2011-09-30 02:01暂时不需要~~收藏备用 回应
- 烘干机
#14/2011-10-06 12:02我正在调试我的目录博客 正好加上 回应
我简单说几句