非插件实现wordpress评论添加验证码

因为本站的插件实用突然超过了十个了,所以怕影响速度,干脆想去掉几个了,而首当其冲的,当然是垃圾评论屏蔽的插件了,这个评论屏蔽插件一方面是觉得完全是没有起到必要的作用,而且实在是觉得没有必要,所以就想到通过非插件实现垃圾评论屏蔽了的,具体过程如下:

1.打开网站根目录下的wp-comments-post.php(记得是根目录)然后找到如下这段代码:

if ( '' == $comment_content )
	wp_die( __('Error: please type a comment.') );

$comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

2.然后在这段代码上面添加以下代码:

//算术验证开始
if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$sub = trim($_POST[sub]);
if ((($a+$b)!=$sub)|| empty($sub)){
wp_die( __('Sorry,Please enter the correct verification code!skyff.net') );
}
}
//算术验证结束,看好添加位置
if ( '' == $comment_content )
	wp_die( __('Error: please type a comment.') );

$comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

3.打开所用主题下comments.php,在网址输入行的下面添加一行,自己根据您使用的主题来美化:

<p><?php $a=rand(0,10); $b=rand(0,10); ?>
<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" />
<label>验证 (<?php echo $a ?>+<?php echo $b ?>)</label></p>

其中0-10可以自己设置范围,可以降低验证码的难度。具体效果见我的网站的留言板页面

截图显示效果如下:

为评论添加验证码

当然了这样会降低用户的使用体验了的,哎,只好以后用更好的防垃圾评论插件了的。

comments (7)

  1. Dec 16, 2010 | 小羿

    你的模板很有特色的说

  2. Jan 24, 2011 | sky

    呵呵,杂志类的

  3. Jan 18, 2011 | 免费情结

    呵呵,不错。///////

  4. Jan 24, 2011 | sky

    呵呵,谢谢

  5. Oct 23, 2011 | toinka

    这几天正为这个烦呢~来了一推垃圾英文评论 :sad:

  6. Oct 28, 2011 | 点滴生活网

    :mrgreen:
    非常不错啊

  7. Oct 29, 2011 | kiback

    已经添加成功!! 非常感谢。

Leave a Comment