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.
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. |