У вас должно быть хотя бы одно из этих полей, т. Е. Либо имя пользователя, либо адрес электронной почты, потому что вы не можете войти только с помощью пароля.
В следующем примере я использовал только имя пользователя для регистрации, игнорировал поле электронной почты и зарегистрировался.пользователь через вызов ajax, этот код взят из файла functions.php.
function register() {
global $wpdb;
$username = $_POST['username'];
$password = $_POST['password'];
$userdata = array('user_login' => $username, 'user_pass' => $password);
if (isset($username) && $username != '') {
$user_id = wp_insert_user($userdata);
wp_set_current_user($user_id, $username);
wp_set_auth_cookie($user_id, true, false);
$_SESSION['registered'] = 1;
update_user_meta($user_id, 'last_login', time());
if (is_wp_error($user_id)) {
$error_string = $user_id->get_error_message();
echo $error_string;
}
echo $user_id;
}
}