分享各种网络资源
是我乃至整个互联网的精髓所在
最新消息:开启被动注册模式,详情点击这里,同时接小单,QQ:330733312
 您目前所在位置: 站点首页 » WordPress » WordPress 代码 » WordPress评论添加数学验证码
  • +
  • 15
  • WordPress评论添加数学验证码

    WordPress评论添加数学验证码-BanYuner

    这个功能很久之前我就在考虑是否添加进去了,但是说实话,我觉得有些时候添加验证码,可能给人的感觉不是很好,所以我就一直没有添加进来,但是随着无效评论越来越多了,我就还是选择添加上去了。

    添加代码之后,效果方面直接见评论就可以了,但是你可以通过设计自己的CSS来达到不同的效果,我反正个人觉得,评论而已,没有必要弄的那么花哨,简单就好了。

    下面直接附上代码部分:

    //评论数学验证码
    function spam_protection_math(){
    //获取两个随机数, 范围0~9
    $num1=rand(0,9);
    $num2=rand(0,9);
    //最终网页中的具体内容
    echo "<p class='comment-form-author'><input type='text' name='sum' class='math_textfield' value='' size='25' tabindex='4'> $num1 + $num2 = ?"
    ."<input type='hidden' name='num1' value='$num1'>"
    ."<input type='hidden' name='num2' value='$num2'>"
    ."<label for='math' class='small'> 验证码</label></p>";
    }
    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');
    }
    // 增加错误提示功能
    

    代码部分直接添加到functions.php中即可,源代码中的wp_die我个人建议更换为err比较合适,要不然可能会造成错位问题的发生。

    上面是功能代码,下面是调用代码:

    <?php echo spam_protection_math(); ?>
    

    调用代码部分直接放在你需要显示的位置即可,一般来说都是在comments文件中去。功能代码部分注释已经很明确了,我就不做多的解释了,另外,这个功能的代码还有一部分是根据cookie来判断是会否显示验证码的,如果你觉得有需要的话,就添加吧:

    <?php if(isset($_COOKIE['comment_author_email_'.COOKIEHASH]) && isset($_COOKIE['comment_author_'.COOKIEHASH])) : ?>
    <?php $comment_author=$_COOKIE['comment_author_'.COOKIEHASH]; ?>
    <div id="span-list">
    <div id="commentwelcome">
    <?php printf(__(' <span>%1s, 欢迎回来!</span>'), $comment_author); ?>
    </div>
    <div id="welcome">
    <div id="welcome1">
    <?php printf(__('<span>不是 %s ?</span> '), $comment_author); ?>
    </div>
    </div>
    <div id="author_info">
    //你的个人信息框代码,即姓名,邮箱,网址框,不需要加入数学验证码
    </div>
    </div>
    <?php endif; ?>
    

    上面的代码直接添加到你需要显示的位置,一般来说是评论框上方,其次,你需要给自己的姓名,邮箱,网址部分添加以下DIV标签:

    <div id="author_info"></div>
    

    最后将下面的代码进行判断之后添加到主要的JS文件中:

    // 评论欢迎语
    //开始
    if($('input#author[value]').length>0){ //判断用户框是否有值
    $("#author_info").css('display','none'); //将id为author_info的对象的display属性设为none,即隐藏
    var change='<span id="show_author_info" style="cursor: pointer; color:#2970A6;display:block;">编辑信息 &raquo;</span>'; //定义change,style是定义CSS样式,让他有超链接的效果,color要根据你自己的来改,当然你也可以在CSS中定义#show_author_info来实现,这样是为了不用再去修改style.css而已!
    var close='<span id="hide_author_info" style="cursor: pointer;color: #2970A6;">关闭 &raquo;</span>'; //定义close
    $('#welcome').append(change); //在ID为welcome的对象里添加刚刚定义的change
    $('#welcome').append(close); // 添加close
    $('#hide_author_info').css('display','none'); //隐藏close
    $('#show_author_info').click(function() { //鼠标点击change时发生的事件
    $('#author_info').slideDown('slow'); //用户输入框向下滑出
    $('#commentwelcome').css('display','none');//隐藏欢迎语
    $('#welcome1').css('display','none');//隐藏欢迎语
    $('#show_author_info').css('display','none'); //隐藏change
    $('#hide_author_info').css('display','inline'); //显示close
    $('#hide_author_info').click(function() { // 鼠标点击close时发生的事件
    $('#author_info').slideUp('slow'); //用户输入框向上滑
    $('#commentwelcome').css('display','inline');//显示欢迎语
    $('#welcome1').css('display','inline');//显示欢迎语
    $('#hide_author_info').css('display','none'); //隐藏close
    $('#show_author_info').css('display','inline'); })})}
    

    这类所谓的判断指的是根据不同的情况来采取不同的措施,如果你是用户管理员,那么你可能就不想出现验证码,如果你想要设置已经留言过的用户不用填写验证码,那么同样也可以通过下面的语句判断:

    if 1
    //出现欢迎管理员回来代码
    elseif 2
    //出现上文代码
    else
    //出现个人评论框以及数学验证码代码
    end
    

    因为我没有添加cookie版本的验证,所以这类无法给出相关的详细描述,希望大家谅解。

    关注我们 打赏 分享此文

    微信扫码,关注我们

    扫码,支持我

    WordPress评论添加数学验证码

    支付宝(点击图片切换)

    扫码,支持我

    WordPress评论添加数学验证码

    微信(点击图片切换)

    扫码,手机看

    WordPress评论添加数学验证码
    匿名

    个人评价:┃草根博主┃站点无技术含量┃文章内容不够吸引人┃转载内容随处可见┃资源均来自网络┃分享是我的宗旨,也是这个站点存在意义,分享的东西你现在可能不需要,但是我相信只要在某个时间你需要的时候能在这里找到,那么我就是成功的

    相关推荐

    • WordPress 分类描述添加可视化编辑模式

      WordPress 分类描述添加可视化编辑模式

      可视化编辑模式一直是很多人喜欢使用的,但是我个人方面还是喜欢传统的 html 模式,不是别的,主要是自己写的东西通过代码出现的就是自己的,而...

      点击查看
    • 6 款 WordPress 缓存插件对比测试

      6 款 WordPress 缓存插件对比测试

      缓存插件我相信每个站点几乎都是在使用的,插件的原理并不是能提高带宽也不是说能提高页面加载速度等等,仅仅是为了降低服务器的压力,当人群数量大量...

      点击查看
    • WordPress 获取分类第一篇文章第一张图片地址

      WordPress 获取分类第一篇文章第一张图片地址

      这个功能我不知道网络上面有没有相关教程,至少我是没有看到的,所以这里还是简单的说一下,可能其中有不少问题,也可能是我的方法太过复杂,但是还是...

      点击查看
    WordPress评论添加数学验证码
    4 + 6 =
    1. 3楼
      Lucki
      最后评论时间:2016/12/02 23:04
      来自天朝的朋友 谷歌浏览器 Windows 10 山东省滨州市 联通
      签到成功!签到时间:2016-12-02 23:03:20,每日打卡,生活更精彩哦~
      Lucki 7个月前 (12-02)回复
    2. 2楼
      我爱动感单车网
      最后评论时间:2016/12/12 10:40
      来自天朝的朋友 谷歌浏览器 Windows XP 广西桂林市 电信
      博主技术不错,会整这么多实用的东西!
      我爱动感单车网 6个月前 (12-12)回复
    3. 1楼
      橘子书
      最后评论时间:2017/06/22 17:43
      来自天朝的朋友 QQ浏览器 Windows 10 福建省漳州市 电信
      你还真加进去了?
      橘子书 13小时前回复