WordPress评论添加验证码

WordPress  1个月前 (10-20)     74    本文共计1607个字,预计阅读时长6分钟。  
WordPress在互联网上面有34%的使用率,从业余爱好的博客到新闻网站很多都是使用的WordPress源码,因为使用的人比较多,所以很多的人开发了一些发送垃圾评论的软件,自动化批量的发送垃圾评论,所以在安装时WordPress自带有一个Akismet Anti-Spam的插件,但是还是会有一些漏网之鱼,一般可以开启评论审核不让垃圾评论第一时间显示,但这并不能阻断垃圾评论的产生。所以我们需要验证码防止机器人评论广告信息。

话不多说,上代码,这里提供两种方案,将代码添加到主题的 functions.php 中

一、数字加法两个随机数验证码

function loper_protection_math(){
# 数字加法两个随机数, 范围0~99
$num1=rand(0,9);
$num2=rand(0,9);
echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" placeholder=\"$num1 + $num2 = ?\" >\n";
echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
echo "<label for=\"math\">请输入(计算结果)</label>\n";
}
function loper_protection_pre($commentdata){
$sum=$_POST['sum'];
switch($sum){
case $_POST['num1']+$_POST['num2']:
break;case null:err('错误: 请输入验证码。');
break;default:err('错误: 验证码错误。');}
return $commentdata;}
if($comment_data['comment_type']==''){
add_filter('preprocess_comment','loper_protection_pre');}

 

二、英文数字随机数验证码

function loper_protection_math(){
$num1=substr(md5(mt_rand(0,99)),0,5);
# 英文数字随机数, 范围0~99
echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n";
echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
echo "<label for=\"math\" >请输入( $num1 )</label>\n";
}
function loper_protection_pre($commentdata){
$sum=$_POST['sum'];
switch($sum){
case $_POST['num1']:
break;case null:err('错误: 请输入验证码。');
break;default:err('错误: 验证码错误。');}
return $commentdata;}
if($comment_data['comment_type']==''){
add_filter('preprocess_comment','loper_protection_pre');}

在需要使用的地方调用代码:

<?php loper_protection_math();?>

本文转载自“爱游博客”:https://www.vipiu.net/archives/2019/07/10/1985.html

本文由:龙哥 发表于 1个月前 (10-20),共1607字
版权声明:①欢迎转载但请注明出处。②如涉及版权联系(izhailong#qq.com)删除!
转载请注明:WordPress评论添加验证码   ||   https://www.izhailong.com/521.html

4 条评论

  • 莫良

    莫良 ( VIP 1 )

    回复

    之前我也遇到很多垃圾机器人留言,但是发现都是英文的,后来直接模版里面加函数,设定要有中文。结果现在就很安静了。

    • 龙哥
      回复

      目前我这边用的是Akismet反垃圾评论插件,后续再看看情况再说,不过你这个方法可以,让我也搞搞

    • 沉舟侧畔

      沉舟侧畔 ( VIP 1 )

      回复

      同楼上,在模版里面加函数设定要有中文,马上清静(说明wp在中国不普及)

      • 龙哥
        回复

        对的,还有各种文字版本的