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