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

博客一旦开放评论功能垃圾评论就会疯拥而来,有效的解决方法是给评论添加验证码功能,在一定程度上可以减少或防止评论机器人,前面博客吧介绍了防垃圾评论或注册的 wordpress 算术问答验证码插件Captcha,但是如果不喜欢用插件或者只需要个简单的算术验证码,可以直接在主题里使用代码实现。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//评论添加验证码
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找到评论输入部分的代码,添加验证码调用代码:

1
<?php spam_protection_math();?>

示例:如下图所示

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

效果可以看博客吧的评论部分

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/248188.html

(0)
上一篇 2022年4月22日
下一篇 2022年4月22日

相关推荐

发表回复

登录后才能评论