非插件的wordpress评论验证码,数学算术验证码

旱船 2018-9-6 2153

非插件的wordpress评论验证码,数学算术验证码。

喜欢用插件可以看看这篇文章,WordPress评论留言输入验证码的插件wp-seccode

如果不喜欢用插件或者只需要个简单的算术验证码,可以直接在主题里使用代码实现。


把下面的代码添加到主题的functions.php文件:

//评论添加验证码
function spam_protection_math(){
$num1=rand(0,9);
$num2=rand(0,9);
echo "<label for=\"math\">请输入 <i>$num1 + $num2 = ?</i> 的计算结果:</label>\n";
echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n";
echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($commentdata){
$sum=$_POST['sum'];
switch($sum){
case $_POST['num1']+$_POST['num2']:
break;
case null:
wp_die('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败');
break;
default:
wp_die('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。','评论失败');
}
return $commentdata;
}
if($comment_data['comment_type']==''){
add_filter('preprocess_comment','spam_protection_pre');
}

在当前主题的comments.php找到评论输入部分的代码,添加验证码调用代码:

<?php spam_protection_math();?>


最新回复 (0)
全部楼主
返回