垃圾留言太多?为WordPress添加算数验证码吧!

文章热度: 801 ℃ | 分类: WordPress图文教程

标签: , ,

for-wordpress-add-count-verification-code

发表于: 2012 年 12 月 4 日 | 6 条评论

虽然WordPress自带了强大的垃圾留言过滤插件Akismet(点击这里查看Akismet终极攻略),但是只能治标不治本,无法彻底屏蔽铺天盖地的垃圾信息。所以,我们得出绝招,为你的主题添加算数验证码吧!

网上找了很多教程,不过步骤都很类似,总结大致方法如下:

第一步,把以下函数添加到主题的functions.php文件中

function spam_protection_math(){
    //获取两个随机数, 范围5~15
    $num1=rand(5,15);
    $num2=rand(5,15);
    //最终网页中的具体内容
    echo"<fieldset id='math'>"
        ."$num1 + $num2 = <input type='text' name='sum' id='sum' value='' tabindex='9'>"
        ."<input type='hidden' name='num1' value='$num1'>"
        ."<input type='hidden' name='num2' value='$num2'>"
        ."</fieldset>";
}
function spam_protection_pre($commentdata){
    $sum=$_POST['sum'];//用户提交的计算结果
    switch($sum){
        //得到正确的计算结果则直接跳出
        case $_POST['num1']+$_POST['num2']:break;
        //未填写结果时的错误讯息
        case null:wp_die('Error: please fill the math spam protection field.');break;
        //计算错误时的错误讯息
        default:wp_die('Error: in case of a wrong answer.');
    }
    return $commentdata;
}
if($comment_data['comment_type']==''){
    add_filter('preprocess_comment','spam_protection_pre');
}

第二步,到评论文件comments.php中添加如下代码:

<?php if(!is_user_logged_in())spam_protection_math();?>

最后定义一下“row”、“math_textfield”、“small”的CSS属性即可。


除非注明,网站文章均为原创,转载请标明本文地址
本文地址: http://www.wpbus.com.cn/for-wordpress-add-count-verification-code.html





上一篇:
下一篇:

关于小编:爱博客、爱游戏、爱熬夜又爱睡觉。梦想环游世界,现实宅在家中...

新浪微博 | 腾讯微博 | 订阅我们