WordPress 6.0 有几个新功能,可以让任何扩展都乐于在该平台上构建。然而,更高级的工具之一是锁定块的能力,可用于防止特定块被移动或移除。

即将发布的版本将在块工具栏的选项下拉列表中包含一个新的“锁定”设置,如以下屏幕截图所示:

从区块工具栏中选择锁定选项。

点击锁定选项后,将出现一个模式,允许用户禁用块的移动或阻止其移除:

阻止锁定选项。

到目前为止,我发现通过 UI 锁定块的最佳用例是停止意外编辑。因为默认情况下用户可以访问 UI 设置,所以如果我需要在布局中移动某些东西或删除它,他们可以稍后禁用锁定。

从表面上看,这似乎不是一个特别强大的功能。然而,块锁的真正威力在于开发方。主题作者可以使用新的锁定键来防止最终用户移动或删除其模板中的特定块。

以下代码是同时阻止这两种情况的组块示例:

这对于更复杂的布局(例如标题和导航区域)特别方便。主题作者现在可以在设计容易被破坏的地方对用户体验施加更多控制。

请注意,锁定不会渗透到嵌套块。因此,如果外部块被锁定,用户仍然可以在其中添加、删除或移动任何内容。 Themers 还必须为他们想要保留的任何嵌套项目添加锁。有一个开放的票和一些锁定嵌套块的早期设计工作,但它不会登陆 WordPress 6.0。

虽然这项新功能为主题作者提供了更多控制权,但并未授予绝对权力。用户仍然可以通过单击工具栏中的锁定图标来解锁块。然而,正如 WordPress 开发圈中所说的那样,“有一个钩子。”

George Mamadashvili 使用 block_editor_settings_all 过滤器钩子来覆盖自定义访问。他提供了一些基于功能、用户电子邮件和上下文(例如帖子类型)启用或禁用 UI 的示例。开发人员可以使用此挂钩的方式没有限制。通常,能力检查通常是处理权限时的最佳选择。

开发人员可以禁用任何用户移动或删除块的能力。在现实世界中,这应该有助于机构和自由职业者为他们的客户创造一个严格控制的体验,尤其是在将访问权交给网站编辑时。

对于正在构建主题以在 WordPress.org 上发布的开发人员,主题团队目前不允许使用此挂钩。它属于“插件字段”指南。上个月,该团队宣布该主题可以在不禁用用户解锁功能的情况下锁定块。

块锁定不限于基于块的模板。内容也可以锁定在帖子或页面中。例如,通过自定义权限设置,开发人员可以扩展它让管理员和编辑为所欲为,同时防止作者和贡献者覆盖锁定。

默认情况下,所有块都支持锁定。对于想要退出此功能的插件开发人员,他们可以在其 block.json 文件中将 support.lock 键设置为 false。

我很想看到基于此系统构建的新 WordPress 插件。从网站定制和编辑过程的角度来看,仍有很大的探索空间。

如需进一步阅读,请查看 Anne McCarthy 关于使用 Lock API 和 theme.json 创作精选体验的帖子。

类别:开发、意见

来源