WordPress 在用户注册账号时增加问题验证功能,可减少或禁止生成垃圾邮箱账号

编辑于:2022年12月06日
WordPress 在用户注册账号时增加问题验证功能,可减少或禁止生成垃圾邮箱账号

WordPress 开启用户注册功能后,就能通过访问 域名/wp-login.php?action=register 使用电子邮箱来注册网站账号了,为了减少被机器人批量注册账号,或禁止用户使用邮箱注册账号,可以在用户注册账号时增加问题验证

功能代码

在所用主题的functions.php文件底部,添加如下代码保存

//邮箱登录增加验证功能
add_action( 'register_form', 'add_security_question' );
function add_security_question() { ?>
    <p>
    <label><?php _e('网站中文名字') ?><br />
        <input type="text" name="cccitu_proof" id="cccitu_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[ 'cccitu_proof' ]) || empty($_POST[ 'cccitu_proof' ])) {
        return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。'  );
    // 如果答案不正确
    } elseif ( strtolower( $_POST[ 'cccitu_proof' ] ) != '玩机大学' ) {
        return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。'  );
    }
}

效果演示

功能自定义

代码中的网站中文名字是问题,玩机大学是答案,你可以根据需要自行变更问题和答案。

  • ⭕如果只想减少机器人自动注册,可以给一个众所周知的问题;
  • ⭕如果只想让部分人注册,可以写一个只有你知道的问题和答案并将答案给特定的人;
  • ⭕如果想要禁止任何人使用邮箱注册,那么答案只让自己知道就行了。

相关推荐

WordPress 如何设置和管理定时作业

WordPress 如何设置和管理定时作业

在 WordPress 中,我们可以使用wp_schedule_event函数来设置定时作业(cron job),即根据需要按每小时、每天、每周和每月循环执行一次。此外,还可以使另一个函数 wp_schedule_single_event 创建只需要执行一次 ...

批量修改 WordPress 标签和分类的别名slug

批量修改 WordPress 标签和分类的别名slug

如果标签和分类别名 slug 为空,则默认将别名设为对应的名称。对于中文的标签和分类,这种设置会导致链接过长且不美观,也会影响搜索引擎如百度的收录。 1. WordPress 数据库标签和分类表 在使用著名 Web 端 MyS ...

暂无评论