title: "用户管理" post_status: publish comment_status: open taxonomy: category: - developer-plugins-handbook post_tag: - Working With Users - Users - Repos


用户管理

添加用户

您可以使用 wp_create_user()wp_insert_user() 来添加用户。

wp_create_user() 仅使用用户名、密码和邮箱参数创建用户,而 wp_insert_user() 接受描述用户及其属性的数组或对象。

创建用户

wp_create_user() 允许您创建新的 WordPress 用户。

[info]它使用 wp_slash() 对值进行转义,使用 PHP 的 compact() 函数创建包含这些值的数组,并通过 wp_insert_user() 执行插入操作。[/info]

请查阅关于 wp_create_user() 的函数参考以获取所用参数的完整说明。

Example Create

// check if the username is taken
$user_id = username_exists( $user_name );

// check that the email address does not belong to a registered user
if ( ! $user_id && email_exists( $user_email ) === false ) {
  // create a random password
  $random_password = wp_generate_password( 12, false );
  // create the user
  $user_id = wp_create_user(
    $user_name,
    $random_password,
    $user_email
  );
}

插入用户

wp_insert_user( $userdata );

[info]该函数会对大多数预定义属性调用过滤器。

创建用户时(用户 ID 不存在),该函数会执行 user_register 操作。

更新用户时(用户 ID 存在),该函数会执行 profile_update 操作。[/info]

关于所用参数的完整说明,请参阅 wp_insert_user() 的函数参考文档。

Example Insert

Below is an example showing how to insert a new user with the website profile field filled in.

$username  = $_POST['username'];
$password  = $_POST['password'];
$website   = $_POST['website'];
$user_data = [
  'user_login' => $username,
  'user_pass'  => $password,
  'user_url'   => $website,
];

$user_id = wp_insert_user( $user_data );

// success
if ( ! is_wp_error( $user_id ) ) {
  echo 'User created: ' . $user_id;
}

更新用户

wp_update_user() 用于更新数据库中的单个用户。更新数据通过 $userdata 数组/对象传递。

如需更新单个用户元数据,请改用 update_user_meta()。如需创建新用户,请改用 wp_insert_user()

[info]如果当前用户的密码被更新,cookies 将被清除![/info]

关于所用参数的完整说明,请参阅 wp_update_user() 的函数参考文档。

Example Update

Below is an example showing how to update a user's website profile field.

$user_id = 1;
$website = 'https://wordpress.org';

$user_id = wp_update_user(
  array(
    'ID'       => $user_id,
    'user_url' => $website,
  )
);

if ( is_wp_error( $user_id ) ) {
  // error
} else {
  // success
}

删除用户

wp_delete_user() 用于删除用户,并可选择将关联实体重新分配给另一个用户 ID。

[info]该函数在用户被删除后执行 deleted_user 操作。[/info]

[alert]如果 $reassign 参数未设置为有效的用户 ID,则属于被删除用户的所有实体都将被删除![/alert]

请参阅关于 wp_delete_user() 的函数参考,以获取所用参数的完整说明。