函数文档

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.

Return

bool|null True if deleted successfully, false otherwise.
Null if the current user is not a member of the site.

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.