(一)在主题目录的functions.php添加如下代码:
function spam_provent_math(){
$a=rand(5,15);
$b=rand(5,15);
echo "<input type='text' name='sum' id='sum' size='22' tabindex='3' value='动手又动脑,哦也 !' onfocus='if (this.value != \"\") {this.value = \"\";}' onblur='if (this.value == \"\") {this.value = \"动手又动脑,哦也 !\";}' /> = $a + $b (<font color='#0088DD'>防止机器人评论</font>)" ."<input type='hidden' name='a' value='$a'/>" ."<input type='hidden' name='b' value='$b'/>";
}
function spam_provent_pre($spam_result){
$sum=$_POST['sum'];
switch($sum){
case $_POST['a']+$_POST['b']:break;
case null:wp_die('亲,算个结果撒');break;
default:wp_die('算错啦⊙﹏⊙b汗');
}
return $spam_result;
}
//注册用户or管理员则不需要验证
if(!is_user_logged_in() && $comment_data['comment_type']==''){
add_filter('preprocess_comment','spam_provent_pre');
}
(二)在主题目录下的comments.php(不同的主题可能评论框的位置不同,有的主题可能在functions.php里面)中调用上述代码:
//根据是否是管理员来决定是否显示验证码
<!--?php if(!isset($_COOKIE['comment_author_email_'.COOKIEHASH]))spam_provent_math();?-->
补充几句:
如果验证码错误的时候页面变形,则把
case null:wp_die('亲,算个结果撒');break;
default:wp_die('算错啦⊙﹏⊙b汗');
改成
case null:err(__('亲,算个结果撒'));
default:err(__('算错啦⊙﹏⊙b汗'));
本文共 156 个字数,平均阅读时长 ≈ 1分钟
评论 (0)