WordPress 6.0 有几个新功能应该让任何扩展程序都乐于在平台之上构建。 然而,更高级的工具之一是锁定块的能力,它可以用来防止特定的块被移动或移除。
即将发布的版本在块工具栏的选项下拉列表中包含一个新的“锁定”设置,如以下屏幕截图所示:
从块工具栏中选择锁定选项。单击锁定选项后,将出现一个模式,允许用户禁用块的移动或阻止其移除:
块锁定选项。到目前为止,我发现通过 UI 锁定块的最佳用例是停止意外编辑。 因为默认情况下用户可以访问 UI 设置,所以如果我需要在布局周围移动某些内容或删除它,他们可以稍后禁用锁定。
从表面上看,这似乎不是一个特别强大的功能。 然而,块锁的真正威力在于开发端。 主题作者可以使用新的锁定键来防止最终用户移动或删除其模板中的特定块。
以下代码是阻止两者的 Group 块的示例:
这对于更复杂的布局尤其方便,例如标题和导航区域。 主题作者现在可以在设计可能很容易被破坏的地方对用户体验施加更多控制。
请注意,锁定不会渗透到嵌套块。 因此,如果外部组块被锁定,用户仍然可以在其中添加、删除或移动任何内容。 Themers 还必须为他们想要保留的任何嵌套项目添加锁。 有一张开放的票和一些早期的设计工作 锁定嵌套块,但它不会登陆 WordPress 6.0。
虽然这个新功能为主题作者提供了更多控制权,但它并不授予绝对权力。 用户仍然可以通过单击工具栏中的锁定图标来解锁块。 然而,正如 WordPress 开发圈中的一句俗语,“有一个钩子。”
乔治·马马达什维利 使用 block_editor_settings_all 过滤钩子覆盖 自定义访问。 他提供了一些基于功能、用户电子邮件和上下文(例如帖子类型)启用或禁用 UI 的示例。 开发人员如何使用这个钩子没有限制。 一般来说,能力检查通常是处理权限时的最佳选择。
开发人员可以禁用任何用户移动或删除块的能力。 在现实世界中,这应该有助于代理机构和自由职业者为他们的客户创造严格控制的体验,尤其是在将访问权移交给网站编辑时。
对于正在构建主题以在 WordPress.org 上发布的开发人员,主题团队目前不允许使用此挂钩。 它属于“插件领域”指南。 上个月, 团队宣布 该主题可以锁定块但不会禁用用户解锁它们的能力。
块锁定不限于基于块的模板。 也可以将内容锁定在帖子或页面中。 例如,通过自定义权限设置,开发人员可以扩展它,让管理员和编辑自由发挥,同时防止作者和贡献者覆盖锁定。
默认情况下,所有块都支持锁定。 对于想要退出此功能的插件开发人员,他们可以在其 block.json 文件中将 support.lock 键设置为 false。
我渴望看到在这个系统上构建新的 WordPress 插件。 从网站定制和编辑流程的角度来看,还有很多空间可以探索。
如需进一步阅读,请查看 Anne McCarthy 关于创作的帖子 锁定 API 和 theme.json 的策划体验.
类别: 发展, 观点