wordpress无插件纯代码实现注册验证 拒绝恶意注册

网站重新上线后经常遇到恶意注册现象,邮箱里收到注册用户通知一条跟着一条,实在烦人,网上找了很多解决办法,大多都是利用插件,添加验证功能,这里觉得设置甚是麻烦而且繁琐,添加插件给服务器又增加负担,所有就一直研究寻找其他解决办法,功夫不负有心人,看到了其他博客使用纯代码添加问题解决掉的此问题,所以借鉴下,这里共享出代码给大家。代码及效果图如下,添加在主题:functions.php文件内即可。

wordpress无插件纯代码实现注册验证 拒绝恶意注册
add_action( 'register_form', 'add_security_question' );
function add_security_question() { ?>
    <p>
    <label><?php _e('请输入本站域名:sheruo.com') ?><br />
        <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
    </p>
<?php }
     
add_action( 'register_post', 'add_security_question_validate', 10, 3 );
function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
    // 如果没有回答
    if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
        return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。'  );
    // 如果答案不正确
    } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'sheruo.com' ) {
        return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。'  );
    }
}

设置打时候第四行为题可以自定义,倒数第四行答案也要进行对应修改。可以本站查看效果,
链接:https://sheruo.com/wp-login.php?action=register

发表回复

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