使用代码为WordPress评论添加算术验证码

前言

当博客被各大引擎有些小收录后(尤其是谷歌),会存在大量垃圾评论,很是难缠,博主这小小博客才几篇文章,每天就得十几的垃圾评论,每次看见很是不爽。

因发垃圾评论的 大多是脚本等自动程序发的,所以可以靠验证码的方式来阻隔它们,验证码的样式有很多,最经典的就是图片验证码了,属实也很好不过得加插件,博主是个简洁强迫症主义者!! 为此可以添加一个纯代码实现的数字算数验证码 只需几行代码 简洁明了!!

临近期末 近期博主实在是太忙 没有时间更新博客 只能靠水水WordPress来维持维持的啦

截图

使用方法

把下面的代码添加到主题的functions.php文件:
在当前主题的comments.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();?>

示例如图 不同主题代码不同  解释一下 代码中 标签为 input id为 submit  是提交评论的那个按钮 将这段代码放在 该标签前面即可!

评论 ( 3)
  1. avatar
    沙发
    WAKEN薇肯 2019-01-10 09:20

    学到了,感谢技术分享

  2. avatar
    板凳
    WAKEN薇肯 2019-01-10 09:19

    感谢技术分享

  3. avatar
    地板
    搜程快排系统 2019-01-07 06:31

    这个验证码还是不错的了