setup_userdata()
云策文档标注
概述
setup_userdata() 函数用于设置全局用户变量,如 $user_ID 和 $user_email,通常由 wp_set_current_user() 调用以保持向后兼容性,未来可能被弃用。
关键要点
- 函数设置全局变量 $user_login、$userdata、$user_level、$user_ID、$user_email、$user_url 和 $user_identity。
- 参数 $for_user_id 可选,默认为 0,表示使用当前用户 ID;如果未提供用户 ID,则通过 get_current_user_id() 获取。
- 如果用户不存在,全局变量将被设置为默认值(如 0 或空字符串)。
- 此函数主要用于向后兼容,建议开发者使用更现代的 WP_User 类或相关函数。
代码示例
function setup_userdata( $for_user_id = 0 ) {
global $user_login, $userdata, $user_level, $user_ID, $user_email, $user_url, $user_identity;
if ( ! $for_user_id ) {
$for_user_id = get_current_user_id();
}
$user = get_userdata( $for_user_id );
if ( ! $user ) {
$user_ID = 0;
$user_level = 0;
$userdata = null;
$user_login = '';
$user_email = '';
$user_url = '';
$user_identity = '';
return;
}
$user_ID = (int) $user->ID;
$user_level = (int) $user->user_level;
$userdata = $user;
$user_login = $user->user_login;
$user_email = $user->user_email;
$user_url = $user->user_url;
$user_identity = $user->display_name;
}注意事项
- 此函数可能在未来版本中被弃用,开发者应避免直接使用,转而依赖 WP_User 对象或相关 API。
- 函数内部依赖 get_userdata() 来获取用户数据,确保用户 ID 有效以避免错误。
- 全局变量的设置可能影响其他插件或主题,使用时需谨慎。
原文内容
Sets up global user vars.
Description
Used by wp_set_current_user() for back compat. Might be deprecated in the future.
Parameters
$for_user_idintoptional-
User ID to set up global data. Default 0.
Source
function setup_userdata( $for_user_id = 0 ) {
global $user_login, $userdata, $user_level, $user_ID, $user_email, $user_url, $user_identity;
if ( ! $for_user_id ) {
$for_user_id = get_current_user_id();
}
$user = get_userdata( $for_user_id );
if ( ! $user ) {
$user_ID = 0;
$user_level = 0;
$userdata = null;
$user_login = '';
$user_email = '';
$user_url = '';
$user_identity = '';
return;
}
$user_ID = (int) $user->ID;
$user_level = (int) $user->user_level;
$userdata = $user;
$user_login = $user->user_login;
$user_email = $user->user_email;
$user_url = $user->user_url;
$user_identity = $user->display_name;
}
Changelog
| Version | Description |
|---|---|
| 2.0.4 | Introduced. |