wordpress无插件添加验证码,告别垃圾留言

张映 发表于 2010-09-18

分类目录: wordpress

标签:, ,

这段时间,博客里面,有大量的垃圾评论,都是群发工具发出来的,二天没有看自己的博客了,里面尽然有40多条这样的垃圾评论,并且里面的内容还特别的多,都是一些链接,有1000多个字符,郁闷的我,加上了验证码,请大家见谅。

下面是我不用插件的情况下,添加验证码的过程:

1,在wp-content/themes/你的主题/comments.php里面

找到

<li>
 <label for="email"><span><?php _e('E-mail:'); ?></span></label>
 <input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
 <span><?php if ($req) _e('(required)'); ?> <?php _e('(will not be published)'); ?></span>
 </li>

在他下面添加以下内容:

<li>
 <label for="email"><span><?php $first = rand(1,9);  $second = rand(1,9);  echo "验证码:"; ?></span></label>
 <input type="text" name="code" id="code" value="" size="22" tabindex="3" />
 <input type="hidden" name="ji" id="ji" value="<?php echo $first*$second;?>" size="22" tabindex="3" />
 <span><?php if ($req) _e('(required)'); ?> &nbsp;&nbsp;<?php  echo $first;?>X<?php  echo $second;?>=?</span>                    
 </li>

2,在wordpress的根目录下面有一个文件wp-comments-post.php

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

差不多在85行左右,找到Error: please type a comment.对评论内容的check,提交时评论内容不能为空。在这上面添加以下内容

$code      = ( isset($_POST['code']) ) ? trim($_POST['code']) : null;
$ji      = ( isset($_POST['ji']) ) ? trim($_POST['ji']) : null;
if ( !$user->ID ) {
 if(!empty($code)){
 if($code != $ji){
 wp_die( __('错误: 算的不对,你是不是小学没毕业?嘿嘿') );
 }
 }else{
 wp_die( __('错误: 请输入验证码') );
 }
}

二步搞定,简单吧。一般的验证码都是用图片的,我没有图片,节省资源啊,我没有用session和cookie,用算术来代替。只想防群发软件。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/wordpress/1024.html

1 条评论

  1. 果海儿 留言

    讲的很简单,解释清楚