函数文档

wp_set_all_user_settings()

💡 云策文档标注

概述

wp_set_all_user_settings() 是一个私有函数,用于设置所有用户界面设置。它处理用户设置数组,验证当前用户,并将设置存储为用户选项。

关键要点

  • 函数为私有,主要用于内部处理用户界面设置。
  • 参数 $user_settings 是必需的用户设置数组。
  • 返回类型为 bool|null:成功返回 true,用户未找到返回 false,用户非站点成员返回 null。
  • 函数验证当前用户 ID 和站点成员身份,过滤设置键值对,并更新 user-settings 和 user-settings-time 选项。

代码示例

function wp_set_all_user_settings( $user_settings ) {
	global $_updated_user_settings;

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

	if ( ! is_user_member_of_blog() ) {
		return null;
	}

	$settings = '';
	foreach ( $user_settings as $name => $value ) {
		$_name  = preg_replace( '/[^A-Za-z0-9_-]+/', '', $name );
		$_value = preg_replace( '/[^A-Za-z0-9_-]+/', '', $value );

		if ( ! empty( $_name ) ) {
			$settings .= $_name . '=' . $_value . '&';
		}
	}

	$settings = rtrim( $settings, '&' );
	parse_str( $settings, $_updated_user_settings );

	update_user_option( $user_id, 'user-settings', $settings, false );
	update_user_option( $user_id, 'user-settings-time', time(), false );

	return true;
}

📄 原文内容

Private. Sets all user interface settings.

Parameters

$user_settingsarrayrequired
User settings.

Return

bool|null True if set successfully, false if the current user could not be found.
Null if the current user is not a member of the site.

Source

function wp_set_all_user_settings( $user_settings ) {
	global $_updated_user_settings;

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

	if ( ! is_user_member_of_blog() ) {
		return null;
	}

	$settings = '';
	foreach ( $user_settings as $name => $value ) {
		$_name  = preg_replace( '/[^A-Za-z0-9_-]+/', '', $name );
		$_value = preg_replace( '/[^A-Za-z0-9_-]+/', '', $value );

		if ( ! empty( $_name ) ) {
			$settings .= $_name . '=' . $_value . '&';
		}
	}

	$settings = rtrim( $settings, '&' );
	parse_str( $settings, $_updated_user_settings );

	update_user_option( $user_id, 'user-settings', $settings, false );
	update_user_option( $user_id, 'user-settings-time', time(), false );

	return true;
}

Changelog

Version Description
2.8.0 Introduced.