
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>: 您的回答不正确。' );
}
}
效果演示

功能自定义
代码中的网站中文名字是问题,玩机大学是答案,你可以根据需要自行变更问题和答案。
- ⭕如果只想减少机器人自动注册,可以给一个众所周知的问题;
- ⭕如果只想让部分人注册,可以写一个只有你知道的问题和答案并将答案给特定的人;
- ⭕如果想要禁止任何人使用邮箱注册,那么答案只让自己知道就行了。


暂无评论
要发表评论,您必须先 登录