在WordPress中,默认情况下,用户注册时不会显示密码输入框,而是通过邮件发送随机生成的密码给用户。如果你希望用户在注册时能够自行设置密码,可以通过以下方法解决:
将以下代码加入网站根目录/wp-includes/functions.php 文件最后面
function show_extra_register_fields() {
?>
<p>
<label for="password">密码<br/>
<input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" />
</label>
</p>
<p>
<label for="repeat_password">请重复密码<br/>
<input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password" />
</label>
</p>
<?php
}
add_action('register_form', 'show_extra_register_fields');
function check_extra_register_fields($login, $email, $errors) {
if ($_POST['password'] !== $_POST['repeat_password']) {
$errors->add('passwords_not_matched', "<strong>错误</strong>:两次密码不一致");
}
}
add_action('register_post', 'check_extra_register_fields', 10, 3);
function register_extra_fields($user_id) {
$userdata = array();
$userdata['ID'] = $user_id;
if ($_POST['password'] !== '') {
$userdata['user_pass'] = $_POST['password'];
}
wp_update_user($userdata);
}
add_action('user_register', 'register_extra_fields');
