开发者新动态 (2023年12月)
节日快乐,各位扩展者们!我们即将完成一整年专注于开发者的月度更新,我对过去11个月收到的反馈感到非常高兴(我们在2023年2月推出了第一期《开发者新动态?》)。
在2023年最后一期月度综述中,嗯……内容大致相同——关于实验、功能增强、错误修复以及其他作为在 WordPress 之上构建的扩展者应该了解的消息。
顺便说一句,在这个假期花点时间放松一下,甚至可以暂时离开键盘。如果你花一两天时间与家人或朋友在一起,WordPress 依然会在这里。
现在,让我们在今年最后一次深入了解最新的更新。
和往常一样,请确保你针对 WordPress 开发主干版本和最新版本的 Gutenberg 插件测试下面列出的任何代码更改。
重点内容
6.5 版本路线图发布
Make Core 博客现已发布6.5 版本的早期路线图。它列出了计划在2024年3月发布的下一个 WordPress 版本中包含的项目。文章简要描述了计划中的增强功能和新特性,并提供了跟踪工单的链接,以便你可以跟进开发过程。
字体库位居列表首位,站点编辑器的其他设计工具和功能也是如此,例如修订版增强、移动端导航块、模式以及对经典主题的更多支持。对于插件开发者来说,新的数据视图以及交互性、自定义字段和块绑定的 API 可能非常值得关注。文章还提到了自动更新后的插件和主题回滚、依赖管理、PHP 兼容性以及整体性能改进方面的工作。
插件目录实时预览功能开放选择加入
在9月份插件预览功能发布失败后,贡献者们采纳了插件开发社区的反馈,重新发布了该功能,尽管目前处于有限的测试状态。
如果你的插件在目录中,现在可以开始测试实时预览系统。有一个两阶段的选择加入流程。第一步是让你在第二步向公众启用之前,私下测试预览功能。
本周,该功能已上线。如果插件开发者选择加入此新功能,用户可以通过 WordPress Playground 实例预览插件的功能。
引用块支持块间距
Gutenberg 17.1 为引用块添加了对 blockGap 的支持。这使你可以控制嵌套元素和块之间的间距。
这在工单中被标记为增强,但对于任何构建主题的人来说,这更像是一个错误修复。以前,你必须使用自定义 CSS 来修复引用块的间距,以使其与你的整体间距方案匹配。请务必移除你为测试此更改而添加的任何 CSS。
新增以块为主题的手册章节
在过去的几个月里,WordPress 主题手册增加了几个新章节,每个章节都侧重于现代块主题设计:
这些新章节是全面修订主题手册的大型项目的一部分。该项目仍然需要更多贡献者,你可以通过从GitHub 跟踪工单中挑选一个主题来参与。
插件与工具
数据视图实验更新
虽然目前这并不需要你投入全部注意力,但你应该关注管理数据视图实验。要测试最新更改,你必须通过Gutenberg > 实验管理屏幕启用新管理视图选项。
贡献者们在过去一个月提交了数十项更改,使该功能离所有 WordPress 用户使用更近了一步。要了解每个更改的最新信息,请关注 GitHub 上的数据视图工单。目前开发进展太快,无法在本文中涵盖所有内容。
Tabs 组件更新
新的 Tabs 组件(在 Gutenberg 16.9 中取代了之前的 TabsPanel)自推出以来已收到一些更新:
- 每个子组件现在接受完整的 HTML 元素属性。
- 多个区域的清理和改进。
交互性 API 更新
Gutenberg 17.2 为交互性 API 引入了新的 store() API,并且现在将作为原生模块提供。如果你之前有使用交互性 API 的实现,应该查阅更新后的文档和迁移指南以了解更多信息。
新增用于获取实体修订的选择器
Gutenberg 17.2 为核心数据 API 引入了以下两个新函数,用于获取支持修订的文章类型的文章修订:
HTML API 增加对容器元素的支持
HTML API 已更新,增加了对容器元素的支持,例如 article、blockquote、details、summary 等。对 HTML 处理器的此增强将在 WordPress 6.5 中提供。
标准化 submit_button() 的默认值
作为标准化 WordPress 代码库中函数的持续努力的一部分,submit_button() 函数参数的默认值已从 null 更改为空字符串,以匹配被 submit_button() 包装的 get_submit_button() 的参数。
块钩子 API 中序列化的模板内容暴露给过滤器
在 WordPress 6.4 中引入的块钩子 API 公开了一个过滤器 (hooked_block_types),允许你自动插入相对于其他块类型实例的块。该过滤器包含一个 $context 参数等。
如果过滤器在属于模板或模板部分的块上被调用,$context 会被设置为相应的 WP_Block_Template 对象。此前,此对象的 $context 并未暴露给过滤器。此问题已在 WordPress 6.4.2 中修复。
外部库更新
PHPMailer 和 getID3 已更新至最新版本(分别为6.9.1 和 1.9.23),以更好地支持新版本的 PHP,并利用它们提供的各种错误修复和新功能。
此外,还创建了一些内部 JavaScript 代码,以在导出和下载主题文件时移除对 downloadjs 包的依赖。
实验性 DropdownMenu V2 组件更新
新版本的 DropdownMenu 组件进行了一些调整,包括增加对在旧版弹出框插槽中渲染的支持。请记住,此组件仍标记为实验性,未来可能会更改。
提高 MySQL 最低版本要求
在 WordPress 6.5 中,MySQL 的最低要求版本将从 5.0 提高到 5.5.5(截至57173)。使用 5.5.5 还能确保两件事:
- 支持
utf8mb4(在 MySQL 5.5.3 中添加) InnoDB是默认存储引擎,而不是MyISAM(在 5.5.5 中添加)。
主题
禁用自定义内容尺寸控件
Gutenberg 17.2 为 theme.json 引入了一个新的布局设置,用于在 UI 中禁用自定义内容和宽尺寸。这将使你对用户或客户可以使用设计工具做什么有更多控制权。新的 layout.allowCustomContentAndWideSize 设置可以在全局或块级别设置:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"layout": {
"allowCustomContentAndWideSize": false
}
}
}
目录模式显示在模式库中
你可以通过 patterns 属性在 theme.json 中定义模式,这些模式随后会显示在插入器中供用户使用。在 Gutenberg 17.1 中,这些相同的模式将出现在站点编辑器的模式库中。
WordPress 6.4 中的单篇文章查询循环处理
WordPress 6.4 更改了查询循环的工作方式,至少在你运行块主题时,对于单篇文章、页面和其他自定义文章类型是如此。因为块主题本身不添加循环,WordPress 会自动在后台处理循环。
布局类添加到旧版 Group 内部容器
当经典主题启用对 appearance-tools 的支持但没有 theme.json 文件时,会向 Group 块添加一个内部容器。在 Gutenberg 17.2 中,此内部容器现在将应用布局类。
禁用导航链接块重命名支持
除了少数特殊情况,大多数块可以在 UI 中或通过块标记重命名。Gutenberg 17.2 将导航链接块添加到不能重命名的列表中。
图库块标题的样式化滚动条
嵌套在图库块内的图像块现在具有透明样式化的滚动条。这解决了长期以来长标题无法很好地适应分配给它们的狭小空间的设计问题。
此更改添加了具有高特异性的新 CSS,目标是 .wp-block-gallery.has-nested-images figure.wp-block-image figcaption。如果你在主题中添加了自定义滚动条处理,请务必测试此新代码不会破坏你的自定义样式。
文章标题中渲染 HTML
WordPress 长期以来一直支持在文章标题中使用 HTML,但块编辑器并未在视觉上渲染该 HTML。这意味着你无法感知到此类标记。Gutenberg 17.2 中的一项更新允许你在可视化模式中可视化标记,并在代码模式中查看原始标记。
此更新不允许你在可视化模式中编辑文章标题的 HTML,但有一个后续工单请求提供一个富文本工具栏来编辑标记。
值得注意的错误修复
- 当在模式中使用时,嵌入块现在能被正确处理,而不是简单地输出 URL。
- 用于增强分页的可访问性标记现在会显示,无论查询循环的包装元素是什么。
- 使用 Lightbox 时,分别修复了按钮错位和关闭按钮位置问题。
- 链接的文章特色图像块现在被包裹在
<a>标签中,确保你的设计在编辑器和前端之间的一致性。 - “阅读更多”块的
text-decoration属性的 CSS 特异性现在降低了,允许你通过theme.json覆盖它。
活动与资源
Learn WP
过去一个月发布了三个新教程:
开发者时间与走廊闲谈
11月有两场开发者时间与走廊闲谈会议: