WordPress 6.1 中块编辑器首选项的更改

WordPress 6.1 引入了一个新系统,用于管理块编辑器中的首选项。在 6.1 之前,用户首选项(如顶部工具栏全屏模式)仅通过浏览器本地存储保留。这导致用户在清除浏览器数据时丢失了他们的偏好,他们的偏好仅限于单个浏览器实例。

在 6.1 中,WordPress 采用了一个新的编辑器偏好系统。除了浏览器的本地存储之外,它们还将存储在服务器端的用户元中。此更改意味着它们现在将在清除本地存储时保留,并且可以在多个浏览器或计算机上使用。

继续使用本地存储作为保留偏好的辅助方式,为用户离线或在用户元中保存偏好的网络请求中断的情况增加了一层冗余。

之前的首选项实现

WordPress 以前使用@wordpress/data持久性插件来持久化其偏好数据。从 6.1 开始,WordPress 将不再使用此首选项系统,并将切换到新系统。

插件还能够使用数据插件来保存任何与插件相关的偏好。这将像以前一样继续工作,但仍将仅使用浏览器本地存储。

新的偏好系统

新系统在@wordpress/preferences包中实现。这个包实现了任何偏好数据的集中存储,并且可以被插件使用。

与插件相关的 API 易于使用:

// Set defaults for any preferences on initialization. 
// A new user's preferences will have these values. 
// Default values are not persisted. 
wp.preferences.setDefaults( 'my-plugin', {     preferenceA: 1,     preferenceB: false, } );  
// Update preference values. These values will be persisted. 
wp.preferences.set( 'my-plugin', 'preferenceA', 2 ); 
wp.preferences.toggle( 'my-plugin', 'preferenceB' );  
// Read preference values. wp.preferences.get( 'my-plugin', 'preferenceA' ); 
// 2 wp.preferences.get( 'my-plugin', 'preferenceB' ); // true

'my-plugin'值称为一个scope,首选项系统使用它来划分数据。

参考文档:

  • @wordpress/preferences-persistence
  • @wordpress/首选项