WordPress 6.1 块编辑器首选项升级:跨设备持久化新系统详解
WordPress 6.1 带来了一项重大革新,推出全新的首选项管理系统,彻底改变了块编辑器中用户偏好的存储方式。在 6.1 版本之前,用户的个性化设置如顶部工具栏显示或全屏模式等,仅依赖于浏览器的本地存储,这意味着一旦清除浏览器数据,所有偏好设置便会丢失,且这些设置仅限于当前浏览器实例。这一限制让许多用户感到困扰,尤其是在多设备切换或浏览器重置的场景下。
为了解决这些问题,WordPress 6.1 引入了一个更为先进的服务器端存储机制。新系统不仅保留了对浏览器本地存储的依赖,还引入了服务器端的用户元数据存储。这一双重存储策略确保了用户偏好设置在清除本地存储后依然能够保留,并且可以在不同的浏览器或设备之间无缝同步。这种设计不仅提升了用户体验,还增加了系统的容错能力,即使在网络请求中断或用户离线的情况下,偏好设置依然能够得到保障。
在之前的版本中,WordPress 采用了@wordpress/data插件来持久化首选项数据。然而,从 6.1 版本开始,这一传统方案将被逐步淘汰,取而代之的是全新的首选项系统。值得注意的是,尽管新系统将取代旧方案,但插件开发者仍然可以使用@wordpress/data插件来保存与插件相关的偏好设置。不过,这些设置将仅限于浏览器本地存储,无法实现跨设备同步。
新首选项系统在@wordpress/preferences包中得到了完整实现。这个包提供了一个集中化的存储解决方案,允许插件开发者轻松管理和访问偏好数据。通过简洁的API接口,开发者可以方便地设置默认值、更新偏好设置以及读取当前值。例如,通过以下代码片段,开发者可以轻松地为插件设置默认偏好值:
“`javascript
wp.preferences.setDefaults(‘my-plugin’, { preferenceA: 1, preferenceB: false });
“`
随后,可以通过以下方式更新特定偏好值:
“`javascript
wp.preferences.set(‘my-plugin’, ‘preferenceA’, 2);
wp.preferences.toggle(‘my-plugin’, ‘preferenceB’);
“`
最后,读取当前偏好值也变得异常简单:
“`javascript
wp.preferences.get(‘my-plugin’, ‘preferenceA’); // 返回 2
wp.preferences.get(‘my-plugin’, ‘preferenceB’); // 返回 true
“`
在这里,’my-plugin’被称为一个scope,它是首选项系统用来划分数据的重要标识。通过这种方式,不同插件的首选项设置可以相互隔离,避免了数据冲突和混乱。
总而言之,WordPress 6.1 的首选项管理系统不仅提升了用户体验,还为插件开发者提供了更加灵活和强大的数据管理工具。这一变革标志着WordPress在用户体验和开发便利性方面的又一重大突破,为未来的发展奠定了坚实的基础。