前一阵博主想给自己的主题新增一个“评论验证”的功能,主要是为了防止一些机器人和垃圾评论,网上流传最多的一个是使用 myQaptcha 这个插件,这个插件作用是提交评论时必须通过手工滑动解锁,不过博主测试了一下,原装的 myQaptcha 插件貌似不是很兼容 DUX 主题。
后来博主又试了一下 知更鸟主题 作者修改的一个 myQaptcha 插件,用是可以用,但是在 DUX 主题上真的奇丑无比,可能鸟叔只是针对知更鸟部分进行了美化吧!当然,如果你用的是 Begin 主题又不喜欢折腾的话,强烈推荐使用 myQaptcha 修改版!
myQaptcha 修改版下载地址:
链接: https://pan.baidu.com/s/1ZvdaqQLdEQiRNM-tznXhqg 提取码: vuki
当然使用 DUX 主题的小伙伴,也可以使用,只是样式真的不是很好看。。。不喜欢折腾的小伙伴看到这里就可以了!
评论加法算术验证码 代码版
这个代码的话也是来自于网上,写的还不错中规中矩,直接将下面的代码复制到 functions.php 中
//评论数学验证码 function spam_protection_math(){ //获取两个随机数, 范围0~9 $num1=rand(0,9); $num2=rand(0,9); //最终网页中的具体内容 echo "<span class='yanzheng'> $num1 + $num2 = " ."<input type='text' name='sum' class='math_textfield' value=''>" ."<input type='hidden' name='num1' value='$num1'>" ."<input type='hidden' name='num2' value='$num2'></span>"; } function spam_protection_pre($commentdata){ $sum=$_POST['sum'];//用户提交的计算结果 switch($sum){ //得到正确的计算结果则直接跳出 case $_POST['num1']+$_POST['num2']:break; //未填写结果时的错误讯息 case null:wp_die('错误: 请输入验证码!');break; //计算错误时的错误讯息 default:wp_die('错误: 验证码错误,请重新输入!'); } return $commentdata; } if($comment_data['comment_type']==''){ add_filter('preprocess_comment','spam_protection_pre'); }
这里需要说明一下的地方就是,如果你是用的 DUX 主题,建议 wp_die()
函数修改为 err()
!
调用
在你的主题 comments.php 在适当位置添加下面代码进行调用:
<?php echo spam_protection_math(); ?>
到此教程结束,当然这里还需要自己折腾的地方还有一个就是 css 样式,这里博主就不限制大家的思想,尽情的折腾吧!
这个验证码还是有问题啊,只要页面不刷新,一直都是这个
有没有登录注册添加验证码的,不要数字的,太简单了。
刚看到这个正在找,就看到了,感谢啊!!
如果我是DJ你会爱我吗?哈哈
@蜗牛资源网 你这个。。。
很喜欢博主的文章,加油
作者输入也需要输验证码吗?还有就是结果框长短怎么控制?
@VPS驿站 因为这个没有设置身份验证这块的代码,所以所有人评论都需要输入验证码,当然你也可以设置一个判断 if(!isset($_COOKIE[‘comment_author_email_’.COOKIEHASH]))