函数文档

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.