致力于打造一个优秀的建站资源共享学习平台!

爱站窝四川

零插件为WordPress评论添加算术验证码

爱站窝查看全部>>

人气144

苦于受垃圾评论之扰,现在不得不给评论添加验证码,之前看到克兄博客有给wordpress评论添加算术验证码的方法,因为之前没有这么多的垃圾评论,现在发觉天天都有垃圾评论,虽然有装akismet插件,但是还需要自己删除,而且akismet插件也会有误判,所以今天阿来给自己博客的评论加上简单的,虽然评论时会麻烦点。

WordPress评论添加可以用插件来实现,也有非插件的方法,下面的是用非插件的方法来实现给添加算术验证码。

一、在functions.php添加如下代码

//算术验证码   
function spam_provent_math(){   
    $a=rand(1,10);   
    $b=rand(1,10);   
    echo "<input type='text' name='sum' id='sum' size='20' tabindex='3' value='请输入结果...' onfocus='if (this.value != \"\") {this.value = \"\";}' onblur='if (this.value == \"\") {this.value = \"请输入结果...\";}' /> $a + $b = ? (<font color='#0088DD'>防止垃圾评论</font>)"  
        ."<input type='hidden' name='a' value='$a'/>"  
        ."<input type='hidden' name='b' value='$b'/>";   
}   
function spam_provent_pre($spam_result){   
    $sum=$_POST['sum'];   
    switch($sum){   
        case $_POST['a']+$_POST['b']:break;   
        case null:wp_die('请输入结果...');break;   
        default:wp_die('算错了...');   
    }   
    return $spam_result;   
}   
  
//注册用户or管理员则不需要验证   
if(!is_user_logged_in() && $comment_data['comment_type']==''){   
    add_filter('preprocess_comment','spam_provent_pre');   
}

二、在comments.php中调用上述代码:

<?php if(!isset($_COOKIE['comment_author_email_'.COOKIEHASH]))spam_provent_math();?>

以上两步就可以给你的wordpress评论添加算术验证码了,效果看本博客的评论....

更新注意:

以上方法有个bug 就是等用户输入错误的验证码时,会导致网页变形,根据vfhky的解决方法,就是把函数中spam_provent_pre($spam_result)的两个we_die函数全都替换成err。

TA的作品
  • Mohtml 作品/设计展示自适应wordpress主题 模板兔出品
  • QYKCMS后台软件v4.1.3部分操作界面截图
  • 轻松制作一款与众不同的QYKCMS网站主题
  • 怎样设置可以让QYKCMS系统运行得更快?
  • 使用 Apache .htaccess 文件设置QYKCMS伪静态规则的方法
  • QYKCMS后台管理软件入门级操作视频教程
  • IIS下使用 web.config 文件设置QYKCMS伪静态规则的方法
  • 同一个网站空间使用QYKCMS建立多个独立站点
  • QYKCMS后台管理员密码忘记了怎么办
  • QYKCMS 网站系统4.0 标签大全
查看全部

全部评论: 0

在线咨询
有什么可以帮到你
点击咨询

账号登录

忘记密码

第三方账号快速登录

Q Q 登 录 微 博 登 录

账号注册 已经有账号? 立即登录

发送验证码

第三方账号快速注册

Q Q 登 录 微 博 登 录