0%

WordPress 用户的创建,更新,删除

在 WordPress 里面,用户和访客是不同的概念。用户是在你的网站是注册,有自己的用户名的人群。你可以在设置面板里开启允许新用户注册的功能,在“会员”里把“允许所有用户注册”的勾打上就可以了。

在这一节里面,我们会涉及到 WordPress 里面一些与注册用户交互的重要函数。全新安装的 WordPress 应该至少有一个用户:即安装 WordPress 的那个。在旧版本里面,该用户的名字只能是“管理员”,而现在你可以在安装的时候自定义一个名字了。

创建一个用户,升级和删除用户

WordPress 有一个可视化界面来创建,升级和删除用户。你应该大部分时间都用这种方式。但是也有一些情况是你想要通过代码的方式来解决的:例如,当你把用户从另外一个平台导入的时候,或者是自己设计注册表格的时候。

WordPress 有四个函数了完成这些活动:

wp_create_user
wp_insert_user
wp_update_user
wp_delete_user

一开始坑有一些困扰。前面三个函数都快用来创建新的用户, 而 “wp_insert_user” 和 “wp_update_user” 可以用来升级已经存在的用户。这样设定是有原因的。

有两种方法来创建一个新的用户:

  1. 通过通过传递最小的必备信息来创建一个用户(用户名,密码和 email)。在这种情况下,你应该使用 wp_create_user 函数。

  2. 通过传递用户数据的数组。在这种情况下,你应该使用 wp_insert_user 函数。这个可以在你增加一个用户之前就可以设置好。

要升级一个存在的用户,你应该使用 wp_update_user 函数。不过,用 wp_insert_user 也是可行的,但这个函数不验证用户密码,所以可能会失败。所以呢,最好还是用最好的工具来做恰当的事情。

下面我会写一些小片段来示范一下每个函数是怎样使用的。如果你需要更多的信息,你可以去 Codex 上找更详细的介绍。

wp_create_user 的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
add_action( 'init', 'wpttuts_createuser' );

function wpttuts_createuser() {
// User Data
$user_name = 'new_user';
$user_password = 'new_user_password';
$user_email = 'new_user@gmail.com';

// Create the user
$user_id = wp_create_user( $user_name, $user_password, $user_email );

// Checks if the function returned a WP Error Object
if ( is_wp_error ($user_id) ) {
$user_id->get_error_message();
}
else {
// user created successfully
}
}

wp_insert_user 的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
add_action( 'init', 'wpttuts_insertuser' );

function wpttuts_insertuser() {
// Prepare the user data
$user_data = array (
'user_login' => 'new_user',
'user_password' => 'new_user_password'
'user_email' => 'new_user@gmail.com',
'role' => 'administrator'
);

// Create the user
$user_id = wp_insert_user( $user_data );

// Checks if the function returned a WP Error Object
if ( is_wp_error( $user_id ) ) {
$user_id->get_error_message();
}
else {
// user created successfully
}
}

wp_update_user 的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
add_action( 'init', 'wpttuts_updateuser' );

function wpttuts_updateuser() {

// Prepare the user data
$user_data = array (
'user_id' => 3,
'description' => ' Our newly created user'
);

// Updates the user description
$user_id = wp_update_user( $user_data );

// Checks if the function returned a WP Error Object
if ( is_wp_error( $user_id ) ) {
$user_id->get_error_message();
}
else {
// user updated successfully
}
}

wp_delete_user 的用法

1
2
3
4
5
6
7
add_action( 'init', 'wpttuts_deleteuser' );

function wpttuts_deleteuser() {
if ( wp_delete_user( 3, 1 ) ) {
// User removed successfully
}
}