函数文档

get_all_user_settings()

💡 云策文档标注

概述

get_all_user_settings() 函数用于检索所有用户界面设置,返回最后保存的设置数组或空数组。它优先从全局变量或 Cookie 中获取,否则从用户选项获取。

关键要点

  • 函数返回一个数组,包含用户界面设置,若无设置则返回空数组。
  • 首先检查全局变量 $_updated_user_settings,若已设置则直接返回。
  • 若 Cookie 存在,解析 Cookie 内容获取设置;否则从 get_user_option() 获取并解析。
  • 函数内部使用 get_current_user_id() 获取当前用户 ID,若无用户则返回空数组。
  • 相关函数包括 get_user_setting()、set_user_setting() 和 delete_user_setting()。

代码示例

function get_all_user_settings() {
	global $_updated_user_settings;

	$user_id = get_current_user_id();
	if ( ! $user_id ) {
		return array();
	}

	if ( isset( $_updated_user_settings ) && is_array( $_updated_user_settings ) ) {
		return $_updated_user_settings;
	}

	$user_settings = array();

	if ( isset( $_COOKIE[ 'wp-settings-' . $user_id ] ) ) {
		$cookie = preg_replace( '/[^A-Za-z0-9=&_-]/', '', $_COOKIE[ 'wp-settings-' . $user_id ] );

		if ( strpos( $cookie, '=' ) ) { // '=' cannot be 1st char.
			parse_str( $cookie, $user_settings );
		}
	} else {
		$option = get_user_option( 'user-settings', $user_id );

		if ( $option && is_string( $option ) ) {
			parse_str( $option, $user_settings );
		}
	}

	$_updated_user_settings = $user_settings;
	return $user_settings;
}

📄 原文内容

Retrieves all user interface settings.

Return

array The last saved user settings or empty array.

Source

function get_all_user_settings() {
	global $_updated_user_settings;

	$user_id = get_current_user_id();
	if ( ! $user_id ) {
		return array();
	}

	if ( isset( $_updated_user_settings ) && is_array( $_updated_user_settings ) ) {
		return $_updated_user_settings;
	}

	$user_settings = array();

	if ( isset( $_COOKIE[ 'wp-settings-' . $user_id ] ) ) {
		$cookie = preg_replace( '/[^A-Za-z0-9=&_-]/', '', $_COOKIE[ 'wp-settings-' . $user_id ] );

		if ( strpos( $cookie, '=' ) ) { // '=' cannot be 1st char.
			parse_str( $cookie, $user_settings );
		}
	} else {
		$option = get_user_option( 'user-settings', $user_id );

		if ( $option && is_string( $option ) ) {
			parse_str( $option, $user_settings );
		}
	}

	$_updated_user_settings = $user_settings;
	return $user_settings;
}

Changelog

Version Description
2.7.0 Introduced.