wp_register_persisted_preferences_meta()
云策文档标注
概述
wp_register_persisted_preferences_meta() 函数用于注册用户元属性,以持久化存储用户偏好设置,例如块编辑器中的 'fullscreenMode' 和 'fixedToolbar'。
关键要点
- 函数注册一个用户元键,用于跨页面重载存储用户偏好设置。
- 在多站点环境中,元键会结合博客前缀以确保每个站点有独立的用户偏好。
- 注册时指定元数据类型为 'object',单值存储,并配置 REST API 访问。
代码示例
function wp_register_persisted_preferences_meta() {
global $wpdb;
$meta_key = $wpdb->get_blog_prefix() . 'persisted_preferences';
register_meta(
'user',
$meta_key,
array(
'type' => 'object',
'single' => true,
'show_in_rest' => array(
'name' => 'persisted_preferences',
'type' => 'object',
'schema' => array(
'type' => 'object',
'context' => array( 'edit' ),
'properties' => array(
'_modified' => array(
'description' => __( 'The date and time the preferences were updated.' ),
'type' => 'string',
'format' => 'date-time',
'readonly' => false,
),
),
'additionalProperties' => true,
),
),
)
);
}注意事项
- 该函数从 WordPress 6.1.0 版本开始引入。
- 依赖于 wpdb::get_blog_prefix() 和 register_meta() 等核心函数。
- 元数据 schema 中定义了 '_modified' 属性用于跟踪更新时间,并允许其他自定义属性。
原文内容
Registers the user meta property for persisted preferences.
Description
This property is used to store user preferences across page reloads and is currently used by the block editor for preferences like ‘fullscreenMode’ and ‘fixedToolbar’.
Source
function wp_register_persisted_preferences_meta() {
/*
* Create a meta key that incorporates the blog prefix so that each site
* on a multisite can have distinct user preferences.
*/
global $wpdb;
$meta_key = $wpdb->get_blog_prefix() . 'persisted_preferences';
register_meta(
'user',
$meta_key,
array(
'type' => 'object',
'single' => true,
'show_in_rest' => array(
'name' => 'persisted_preferences',
'type' => 'object',
'schema' => array(
'type' => 'object',
'context' => array( 'edit' ),
'properties' => array(
'_modified' => array(
'description' => __( 'The date and time the preferences were updated.' ),
'type' => 'string',
'format' => 'date-time',
'readonly' => false,
),
),
'additionalProperties' => true,
),
),
)
);
}
Changelog
| Version | Description |
|---|---|
| 6.1.0 | Introduced. |