set_user_setting()
云策文档标注
概述
set_user_setting() 函数用于添加或更新用户界面设置,适用于 WordPress 开发者管理用户偏好。它必须在输出开始前调用,以避免 headers_sent() 问题。
关键要点
- 函数用途:添加或更新用户界面设置,参数 $name 和 $value 仅支持 ASCII 字母、数字、连字符和下划线。
- 调用时机:必须在任何输出开始前使用,因为它内部调用 setcookie(),否则会因 headers_sent() 返回 false。
- 返回值:成功时返回 true,失败返回 false;如果当前用户不是站点成员,则返回 null。
- 相关函数:与 get_all_user_settings() 和 wp_set_all_user_settings() 配合使用,用于获取和设置所有用户设置。
代码示例
/**
* Re-set user setting to always collapse the admin menu.
*
* @see set_user_setting()
*/
function wpdocs_always_collapse_menu() {
if ( 'f' != get_user_setting( 'mfold' ) ) {
set_user_setting( 'mfold', 'f' );
}
}
add_action( 'admin_head', 'wpdocs_always_collapse_menu' );注意事项
- 确保在调用 set_user_setting() 前没有输出任何内容,否则可能因 cookie 设置失败而返回 false。
- 参数 $name 和 $value 应严格遵循 ASCII 字符限制,避免使用特殊字符导致错误。
原文内容
Adds or updates user interface setting.
Description
Both $name and $value can contain only ASCII letters, numbers, hyphens, and underscores.
This function has to be used before any output has started as it calls setcookie().
Parameters
$namestringrequired-
The name of the setting.
$valuestringrequired-
The value for the setting.
Source
function set_user_setting( $name, $value ) {
if ( headers_sent() ) {
return false;
}
$all_user_settings = get_all_user_settings();
$all_user_settings[ $name ] = $value;
return wp_set_all_user_settings( $all_user_settings );
}
Changelog
| Version | Description |
|---|---|
| 2.8.0 | Introduced. |
Skip to note 2 content
Drew Jaynes
Override the user setting to always collapse the admin menu for the current user:
/** * Re-set user setting to always collapse the admin menu. * * @see set_user_setting() */ function wpdocs_always_collapse_menu() { if ( 'f' != get_user_setting( 'mfold' ) ) { set_user_setting( 'mfold', 'f' ); } } add_action( 'admin_head', 'wpdocs_always_collapse_menu' );