为 WordPress 5.4 做准备:开发人员应了解的主题和插件更改
已发表: 2020-03-05随着 WordPress 5.4 的发布迫在眉睫,插件和主题开发人员是时候开始测试他们的扩展并确保没有问题了。 还有用于即将推出的功能的新 API。 昨天,核心团队发布了 5.4 的第一个候选版本。 正式版计划于 3 月 31 日发布。
这篇文章将作为快速指南,其中包含开发人员在未来几周需要牢记的几个重要更改的链接。 请务必测试您的插件和主题。
主题开发者

有几个主题作者想要测试的变化。 WordPress 5.4 有一些额外的主题功能。 它还有一些与标记相关的更改,这些更改可能会破坏前端和块编辑器中的主题设计。 不幸的是,对于想要支持多个 WordPress 版本的主题作者来说,其中一些更改可能意味着一些额外的 CSS 膨胀。
社交图标和按钮块
WordPress 5.4 引入了两个新块:社交图标和按钮。 社交图标块允许用户为多达 40 个不同的社交网络插入图标/链接。 按钮块允许用户将多个按钮块组合在一起。 推出自定义块编辑器样式的主题作者需要考虑这些新块,以确保它们正确输出。
创建自定义渐变预设
新的渐变 API 允许主题作者定义自定义渐变预设,供用户与组或按钮块一起使用。 主题作者需要做一些跑腿工作来改善默认渐变预设的令人眼花缭乱的问题。 通过一些工作,渐变可以成为用户使用的有用工具。 如果主题作者不想支持渐变,他们也可以完全禁用渐变。
块编辑器标记和样式更改
直接针对特定编辑器类的主题作者将需要检查他们的块编辑器样式。 许多具有editor-前缀的类已更改为使用block-editor-前缀。 带有.edit-post-layout__content类的包装元素已被完全删除。 从块和富文本组件中删除了几个包装器元素。 Core 的内置填充和块上的负边距已被重构,这是一个受欢迎的补充。 也许主题作者将不再需要对抗多个嵌套选择器来提供与前端匹配的基本工作布局。
这些变化已经打破了我见过的几个主题。 许多主题作者很有可能需要更新他们的块编辑器样式。
在主题审查小组要求更多主题作者提交具有自定义编辑器样式的主题时,这些类型的类和标记更改并不能增强信心。 主题开发人员很容易觉得他们正在打一场失败的战斗。 然而,工作正在向前推进,以使编辑器标记更接近与前端的一对一匹配。 在某些时候,主题作者只能希望他们不再需要处理这些类型的变化,同时支持跨多个版本的 WordPress 的用户。 目前,它们处于一个有点混乱的过渡阶段。
日历标记和类更改
核心团队更改了get_calendar()函数的标记,这也影响了日历小部件。 日历输出不再有<tfoot>元素。 相反,上个月和下个月的链接被移动到<table>元素下方的<nav>元素。
日历输出还添加或更改多个 ID 和类:
-
.wp-calendar-table添加到包装器元素。 -
.wp-calendar-nav添加到导航包装元素。 -
.wp-calendar-nav-next替换下个月链接上的#nextID。 -
.wp-calendar-nav-prev替换上个月链接上的#prevID。
这些都是突破性的变化。 任何针对旧 HTML 或 ID 的自定义 CSS 都需要更新。

块开发人员

对于创建自定义块的插件开发人员,WordPress 5.4 引入了几个新的 API 和工具来使用块系统。
块脚手架
开发人员有一个新的 NPM 包,用于快速创建块插件。 使用npm init @wordpress/block <plugin-name>的单个命令,脚本将创建一个新目录并构建构建块插件所需的适当 PHP、CSS 和 JavaScript 文件。 开发人员可以默认使用现代 JavaScript 工具,也可以选择使用 ES5 版本。
块脚手架包的目的是让插件作者构建最终将进入官方块目录的单块插件。
块集合 API
Block Collections API 的工作方式与类别类似。 但是,它们基于命名空间。 当插件开发人员注册自定义集合时,任何共享集合命名空间的块都将出现在块插入器的自定义部分下。 这似乎是组织块的更聪明的方式。 对于创建块库的插件来说,它肯定会派上用场,提供一种将它们组合在一起的自动方式。
块变化 API
新的 Block Variations API 允许块开发人员从本质上创建具有变体的块副本。 每个注册的变体都将在块插入器中显示为一个单独的块,供用户选择。
此功能的一个很好的例子是新的社交图标块。 它是一个单一的块,有 40 种不同社交网络的变体。
其他与开发人员相关的更改
还有一些其他值得注意的变化涉及插件和主题开发领域。
新的导航菜单挂钩
在等待和等待之后,开发人员终于得到了一些经常请求的钩子,用于将自定义字段添加到导航菜单管理屏幕和定制器。 至少一张票可以追溯到 9 年前,但迟到总比没有好。 过去,开发人员需要使用自定义 walker 类来进行一些必要的自定义。 但是,一次只能使用一个 walker 类,这意味着进行更改的多个插件不能一起工作。
核心团队在导航菜单管理屏幕上添加了新的wp_nav_menu_item_custom_fields挂钩,该挂钩出现在各个菜单项的“移动”按钮之前。 为了与管理员平价,导航菜单项在定制器中有一个新的wp_nav_menu_item_custom_fields_customize_template 。 这些钩子将允许开发人员添加将自定义数据添加到导航菜单项所需的自定义表单字段。
apply_shortcodes() 别名函数
WordPress 5.4 引入了一个新的apply_shortcodes()函数。 它是do_shortcode()函数的别名。 新函数提供了一个语义更正确的函数名称。 通常,前缀为do_的函数期望输出或某种类型的操作。 前缀为apply_的函数期望返回数据。
如果您正在创建具有短代码感知区域的主题或插件,您将需要切换到新功能。 虽然do_shortcode()函数当前未标记为弃用,但这应该是最终目标。
