在 WordPress 中,获取用户信息主要通过几个核心函数和类来实现。以下是常见的用于获取用户信息的函数和类,适用于不同场景:
🧾 一、常用函数(Functions)
1. get_current_user_id()
- 作用:获取当前登录用户的 ID。
- 返回值:整数(用户ID),未登录时返回 0。
- 示例:
$user_id = get_current_user_id();
2. wp_get_current_user()
- 作用:获取当前登录用户的对象(
WP_User实例)。 - 返回值:
WP_User对象。 - 示例:
$current_user = wp_get_current_user(); echo '用户名:' . $current_user->user_login; echo '邮箱:' . $current_user->user_email;
3. get_user_by( $field, $value )
- 作用:根据字段(如 ID、login、email)获取用户对象。
- 参数:
$field:可以是'id','login','email','slug'等。$value:对应字段的值。
- 返回值:
WP_User对象或 false。 - 示例:
$user = get_user_by('id', 1); if ($user) { echo $user->user_login; }
4. get_userdata( $id )
- 作用:根据用户 ID 获取用户数据。
- 返回值:
stdClass对象(包含用户信息)。 - 示例:
$user_data = get_userdata(1); echo $user_data->user_login;
5. get_users( $args )
- 作用:获取多个用户,支持多种查询条件。
- 参数:数组形式,支持
role,meta_key,meta_value,number,offset等。 - 返回值:包含
WP_User对象的数组。 - 示例:
$users = get_users(array( 'role' => 'author', 'number' => 5, )); foreach ($users as $user) { echo $user->display_name; }
🧱 二、核心类(Classes)
1. WP_User
- 作用:表示一个 WordPress 用户对象。
- 常用属性:
ID:用户 IDuser_login:用户名user_email:邮箱display_name:显示名称user_nicename:友好名称user_registered:注册时间roles:角色列表(数组)
- 示例:
$user = new WP_User(1); echo $user->display_name;
2. WP_User_Query
- 作用:更灵活地查询用户,支持复杂条件。
- 示例:
$args = array( 'role' => 'subscriber', 'orderby' => 'registered', 'order' => 'ASC' ); $user_query = new WP_User_Query($args); $users = $user_query->get_results(); foreach ($users as $user) { echo $user->display_name; }
📦 三、其他相关函数
1. is_user_logged_in()
- 作用:判断当前用户是否已登录。
- 返回值:布尔值。
- 示例:
if (is_user_logged_in()) { // 用户已登录 } else { // 用户未登录 }
2. wp_logout_url()
- 作用:生成退出链接。
- 示例:
echo '<a href="' . wp_logout_url() . '">退出</a>';
✅ 四、常见用户信息字段
| 字段名 | 说明 |
|---|---|
ID |
用户唯一 ID |
user_login |
用户名 |
user_pass |
密码(加密存储) |
user_nicename |
友好名称 |
user_email |
邮箱 |
user_url |
用户网站 |
user_registered |
注册时间(UTC 时间) |
user_activation_key |
激活密钥(用于注册激活) |
user_status |
用户状态(0=正常,1=停用) |
display_name |
显示名称 |
roles |
用户角色(如:subscriber, editor, administrator) |
🧩 五、使用示例汇总
// 获取当前用户
$current_user = wp_get_current_user();
if ($current_user->exists()) {
echo '欢迎 ' . $current_user->display_name;
echo ',您的邮箱是:' . $current_user->user_email;
}
// 获取所有管理员
$admins = get_users(array('role' => 'administrator'));
foreach ($admins as $admin) {
echo $admin->user_login . '<br>';
}
📘 六、参考文档
如果你有特定的用途(比如获取某个角色的用户、获取用户元数据等),我也可以提供更具体的代码示例!
0 条评论