非插件实现wordpress验证码

blog里经常很多不厌其烦的垃圾广告评论,看了下内容很多都像是通过软件刷出来的,由于wordpress安装上除了默认的反垃圾插件外,并没有启用验证码机器,所以很容易实现批量刷垃圾评论。而又不想通过增加插件实现验证码功能,这里使用了一点简单的代码实现一个数学算法验证码。



找到主题的functions.php文件,将其备份后,增加如下内容:



<br />
//评论添加验证码
function spam_protection_math(){
    num1=rand(0,9);num2=rand(0,9);
    echo "\n";
    echo "\n";
    echo "\n";
    echo "";
}
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');
}
在当前主题的comments.php找到评论输入部分的代码,添加验证码调用代码:



<br />

示例如下:

<br />



<img src="https://www.361way.com/wp-content/uploads/2017/10/anti-spam-captcha.png" width="620" height="180" title="anti-spam-captcha" alt="anti-spam-captcha" />



<br />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注