delete_user_setting()
云策文档标注
概述
delete_user_setting() 函数用于删除用户界面设置,将其重置为默认值。该函数必须在输出开始前调用,因为它会使用 setcookie()。
关键要点
- 参数 $names 为字符串或数组,指定要删除的设置名称。
- 返回值:成功删除返回 true,失败返回 false;如果当前用户不是站点成员则返回 null。
- 函数内部检查 headers_sent(),若已发送头信息则直接返回 false。
- 通过 get_all_user_settings() 获取所有设置,删除指定项后调用 wp_set_all_user_settings() 更新。
代码示例
function delete_user_setting( $names ) {
if ( headers_sent() ) {
return false;
}
$all_user_settings = get_all_user_settings();
$names = (array) $names;
$deleted = false;
foreach ( $names as $name ) {
if ( isset( $all_user_settings[ $name ] ) ) {
unset( $all_user_settings[ $name ] );
$deleted = true;
}
}
if ( $deleted ) {
return wp_set_all_user_settings( $all_user_settings );
}
return false;
}注意事项
- 必须在输出开始前调用,否则可能因 headers_sent() 检查而失败。
- 相关函数包括 get_all_user_settings() 和 wp_set_all_user_settings()。
- 自 WordPress 2.7.0 版本引入。
原文内容
Deletes user interface settings.
Description
Deleting settings would reset them to the defaults.
This function has to be used before any output has started as it calls setcookie().
Parameters
$namesstringrequired-
The name or array of names of the setting to be deleted.
Source
function delete_user_setting( $names ) {
if ( headers_sent() ) {
return false;
}
$all_user_settings = get_all_user_settings();
$names = (array) $names;
$deleted = false;
foreach ( $names as $name ) {
if ( isset( $all_user_settings[ $name ] ) ) {
unset( $all_user_settings[ $name ] );
$deleted = true;
}
}
if ( $deleted ) {
return wp_set_all_user_settings( $all_user_settings );
}
return false;
}
Changelog
| Version | Description |
|---|---|
| 2.7.0 | Introduced. |