我们可以使用 wp_create_user()
或 wp_insert_user()
函数在WordPress中添加用户,在本文中,我们会通过几个例子,展示如何使用这两个函数在 WordPress 中添加和更新用户,解释他们之间的相同和不同之处。
wp_create_user 和 wp_insert_user 的不同
wp_create_user
此函数允许我们仅提供用户名、密码、电子邮件这三个必要信息来添加一个用户。用户角色为网站设置的新用户默认角色。事实上,wp_create_user
工作在 wp_insert_user
之上, 是 wp_insert_user
的简化包装。
wp_insert_user
这个函数是通过程序添加 WordPress 用户的完整方式,我们可以传入一些更详细的用户信息,如:姓氏、显示名称、用户角色等等。
示例
我们知道了这两个函数的基础信息,下面我们来看一下示例代码。
通过程序创建 WordPress 用户的简单示例
现在,让我们创建一个名位 peter 和密码为 123456 的订阅者用户(永远不要在实际项目中使用此密码,请阅读如何使用 wp_genetate_password()
函数来生成密码),我们将分别使用这两个函数来完成此操作,以便您可以更清楚的理解其中的差异。
使用wp_create_user 创建用户
$user_id = wp_create_user( 'peter', '123456' );
if ( is_wp_error( $user_id ) ) {
// 如果因为某些原因无法创建用户,显示错误信息
echo $user_id->get_error_message();
} else {
// 创建好了显示创建成功的信息
echo '用户创建成功!';
}
使用 wp_insert_user 创建用户
$user_id = wp_insert_user(
// 在这里以数组形式提供所有数据
[
'user_login' => 'peter',
'user_pass' => '1234546',
]
);
if ( is_wp_error( $user_id ) ) {
// 如果因为某些原因无法创建用户,显示错误信息
echo $user_id->get_error_message();
} else {
// 创建好了显示创建成功的信息
echo '用户创建成功!';
}
创建好后,新添加的用户将会在用户列表中显示,和在后台直接添加用户的效果是一样的。
通过程序添加管理员用户
如果我们需要在添加用户的时候指定用户的角色,比如添加一个管理员用户,我们就不能再使用 wp_create_user()
函数了,因为该函数无法指定用户角色。这种情况下,我们需要使用 wp_insert_user()
函数来添加用户。
$admin_user_id = wp_insert_user(
[
'user_login' => 'peter',
'user_pass' => '123456',
'role' => 'administrator',
]
);
if ( ! is_wp_error( $admin_user_id ) ) {
echo '管理员用户创建成功!';
}
创建用户时可以提供的完整数据
我们知道,WordPress 用户的基础信息存储在 wp_users 数据表中,附加信息存储在 wp_usermeta 数据表中,其中存储在 wp_users 数据表中的信息可以直接传递给 wp_insert_user()
函数来添加,存储在 wp_usermeta 数据表中的一部分附加信息也可以在创建用户时传递给 wp_insert_user()
函数,更多的其他信息可以在创建函数后,使用 update_user_meta()
来添加。
请看下面的示例
$userdata = [
'user_login' => 'peter',
'user_nicename' => 'peter',
'nickname' => 'peter',
'user_email' => 'peter@example.com',
'user_pass' => '123456',
'first_name' => 'Peter',
'last_name' => 'Liu',
'display_name' => 'Peter Liu',
'user_url' => 'https://wpzhiku.com.com',
'description' => 'A couple words about Peter here.',
'rich_editing' => 'true',
'syntax_highlighting' => 'true',
'comment_shortcuts' => 'false',
'admin_color' => 'fresh',
'use_ssl' => false,
'user_registered' => '2023-12-31 00:00:00',
'show_admin_bar_front' => 'true',
'role' => 'subscriber',
'locale' => '',
];
$user_id = wp_insert_user( $userdata );
if ( ! is_wp_error( $user_id ) ) {
update_user_meta( $user_id, 'aim', '' );
update_user_meta( $user_id, 'yim', '' );
update_user_meta( $user_id, 'jabber', '' );
}
和创建用户相关的辅助函数
- 生成随机密码:
wp_generate_password()
- 检查用户名是否已存在:
username_exists()
- 检查电子邮件是否已存在:
email_exists()
- 删除用户: wp_delete_user()
- 更新用户:wp_update_user()