分享各种网络资源
是我乃至整个互联网的精髓所在
 您目前所在位置: 站点首页 » WordPress » 代码 » WordPress评论添加数学验证码
+

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搜索只显示标题中含有关键字的文章

    今天在知更鸟博客上面看到了这篇文章,整体来说,这个功能在某些方面还是比较有用的,如果说通过标题中的关键字来寻找文章的 ...

    点击查看
  • 如何给WordPress站点添加wow.js效果

    如何给WordPress站点添加wow.js效果

    今天折腾了以下这个东西,为什么会折腾这个东西呢,因为之前经常逛知更鸟博客,后来一次更新之后,发现知更鸟博客多了一种加 ...

    点击查看
  • 如何在WordPress评论中显示更多HTML标签

    如何在WordPress评论中显示更多HTML标签

    我见过很多站点,都可以在评论里面添加各种标签,什么自己加粗,然后添加图片,添加链接等等,当时我个人觉得可能并不适合我 ...

    点击查看
  • WordPress显示一年前当天的文章

    WordPress显示一年前当天的文章

    最开始看到这个功能是在112博客,那个时候看到这个功能的第一感觉可能就是觉得,这个功能不是很实用,可能会增加SQL语句的查 ...

    点击查看
  • 给你的WordPress站点添加一个打印按钮

    给你的WordPress站点添加一个打印按钮

    这个功能很久之前就已经在知更鸟博客上面看到了,但是一直没有想过是什么原理,但是今天无意间发现了一个方法,目前觉得还是 ...

    点击查看
  • WordPress显示一周热评

    WordPress显示一周热评

    WordPress站点如何显示一周热评,我相信还是有很多人都想要知道的,那么这里就简单的说说实现方法了。

    点击查看
  • WordPress 限定显示评论者链接的输出

    WordPress 限定显示评论者链接的输出

    最近从bigfa的相关站点看到了这个更新内容,我个人觉得还是很有用的,对于一些广告用户还是有一定的作用的,毕竟有些时候, ...

    点击查看
  • WordPress文章段落间插入广告

    WordPress文章段落间插入广告

    很久之前就已经在留意这个功能了,但是一直没有找到相关的解决办法,今天我算是找到了这个相关代码。使用这个功能对于我们宣 ...

    点击查看
  • 最轻便的复制页面内容到剪切板的JS:clipboard.js

    最轻便的复制页面内容到剪切板的JS:clipboard.js

    今天早些时候在水煮鱼博客看到了这篇文章,我一开始是想要用到代码方面的,毕竟代码很多时候都是直接复制编辑的,但是后来想 ...

    点击查看
  • WordPress前台显示站点有多少注册用户

    WordPress前台显示站点有多少注册用户

    虽然我的站点目前已经关闭了注册,所有已经注册过的用户已经清理完毕了,这里说声抱歉。那么今天这个文章就是给大家一个方法 ...

    点击查看
  • WordPress添加一个底部漂浮栏

    WordPress添加一个底部漂浮栏

    站点底部添加一个通知栏的作用是起到一个通知或者说增加PV的作用,但是很多时候我们都知道,这种通知可能被人觉得很反感,但 ...

    点击查看
  • WordPress避免手残导致文章意外发布

    WordPress避免手残导致文章意外发布

    有些时候,我们编辑好了文章,但是我们可能并不想发布,但是很多时候,我们就是手残,也就是误发布了,这种事情可能对于博客 ...

    点击查看

  目前有 7 条评论 其中:访客: 4 条, 博主: 3 条

WordPress评论添加数学验证码
评分: 8 + 8 =
  • 昵称 (必填)  
  • 邮箱 (必填)
  • 网址 (选填)
  1. 3楼
    签到成功!签到时间:2016-12-02 23:03:20,每日打卡,生活更精彩哦~
    Lucki 来自天朝的朋友 谷歌浏览器 Windows 10 山东省滨州市 联通 1天前Reply
  2. 2楼
    博主技术不错,会整这么多实用的东西!
    我爱动感单车网 来自天朝的朋友 谷歌浏览器 Windows XP 广西桂林市 电信 2周前 (11-21)Reply
  3. 1楼
    你还真加进去了?
    橘子书 来自天朝的朋友 QQ浏览器 Windows 10 福建省漳州市 电信 3周前 (11-15)Reply