函数文档

wp_create_user()

💡 云策文档标注

概述

wp_create_user() 函数提供了一种简化方式,用于向数据库插入新用户,仅需用户名、密码和邮箱。对于更复杂的用户创建场景,建议使用 wp_insert_user() 函数。

关键要点

  • 函数用途:简化用户创建,仅处理用户名、密码和邮箱参数。
  • 参数说明:$username(必需,字符串类型),$password(必需,字符串类型,明文密码),$email(可选,字符串类型,默认为空)。
  • 返回值:成功时返回新用户的 ID(整数),失败时返回 WP_Error 对象。
  • 内部实现:基于 wp_insert_user() 函数,通过 wp_slash() 处理用户名和邮箱,并传递密码。
  • 相关函数:wp_insert_user() 提供更完整的用户创建功能,wp_slash() 用于字符串转义。

代码示例

$user_id = wp_create_user( 'newuser', 'plaintextpassword', 'user@example.com' );
if ( is_wp_error( $user_id ) ) {
    // 处理错误
} else {
    // 用户创建成功,$user_id 为新用户 ID
}

注意事项

  • 密码参数应为明文密码,无需加密处理。
  • 函数内部使用 wp_slash() 对用户名和邮箱进行转义,确保数据安全。
  • 对于需要更多用户字段(如显示名、角色等)的场景,应直接使用 wp_insert_user()。

📄 原文内容

Provides a simpler way of inserting a user into the database.

Description

Creates a new user with just the username, password, and email. For more complex user creation use wp_insert_user() to specify more information.

See also

Parameters

$usernamestringrequired
The user’s username.
$passwordstringrequired
The user’s password.
$emailstringoptional
The user’s email. Default empty.

Return

int|WP_Error The newly created user’s ID or a WP_Error object if the user could not be created.

Source

function wp_create_user(
	$username,
	#[SensitiveParameter]
	$password,
	$email = ''
) {
	$user_login = wp_slash( $username );
	$user_email = wp_slash( $email );
	$user_pass  = $password;

	$userdata = compact( 'user_login', 'user_email', 'user_pass' );
	return wp_insert_user( $userdata );
}

Changelog

Version Description
2.0.0 Introduced.

User Contributed Notes

  1. Skip to note 3 content

    Basic Example

    As used in wp-admin/upgrade-functions.php:

    $user_id = username_exists( $user_name );
    
    if ( ! $user_id && false == email_exists( $user_email ) ) {
    	$random_password = wp_generate_password( $length = 12, $include_standard_special_chars = false );
    	$user_id = wp_create_user( $user_name, $random_password, $user_email );
    } else {
    	$random_password = __( 'User already exists.  Password inherited.', 'textdomain' );
    }