要建站上驿站
省心不是一点点

非插件实现wordpress评论数学算术验证码

评论本来是作为博客交流的主要方式,但却成了一些人作为广告宣传的地方,手动广告评论也就算了,最让人烦的是批量的垃圾评论,而且是英文的。因此有必要给博客评论加一道门槛,那就是数学算数验证码。

把下面的代码添加到主题的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)
未经允许不得转载:VPS驿站 » 非插件实现wordpress评论数学算术验证码
分享到: 更多 (0)

评论 6

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    感谢分享,有没有人测试一下

    楚狂人 7个月前 (04-10) 来自天朝的朋友 谷歌浏览器 Windows 10 回复
  2. #2

    过来踩踩,居然看到这篇文章了哈哈哈~

    文字咖 7个月前 (04-10) 来自天朝的朋友 谷歌浏览器 Windows 10 回复
  3. #3

    常来逛逛

    叶忠文博客 4个月前 (08-05) 来自天朝的朋友 火狐浏览器 Windows 10 回复
  4. #4

    这样不会影响打开速度吗