开发者有哪些新动态?(2023年8月)
WordPress 6.3 已于2023年8月8日发布。如果你和我一样,此刻就像在玩具店里的孩子,在过道里飞奔,伸手去够货架上的每一个新玩意儿。
当然,你首先要做的是查看 WordPress 6.3 现场指南,了解新功能和变化。然后,针对新版本测试你的主题和插件。最后,找到你最喜欢的新亮点!
但新版本的发布并不意味着车轮停止转动。WordPress 6.4 已进入 Alpha 阶段,将于 2023 年 11 月发布。如果你有愿望清单,你还有几天时间可以 在 Make Core 博客上提出。
本期的《开发者有哪些新动态?》月度综述内容多样。有些功能已随 6.3 版本发布;有些仍仅在 Gutenberg 插件中提供。
公平地说,该插件已经比合并到 6.3 中的版本领先了两个版本。在测试更改时,始终运行所有组件的最新版本是个好主意。
亮点
第三阶段更新
Make Core 博客最近的三篇文章详细阐述了 第三阶段:协作路线图:
- 区块库 设想了一个满足用户一切需求的单一系统:区块、模式、文章类型、媒体等——并组织所有这些内容,为编辑器内(尤其是编辑器外)提供流畅的体验。
- 管理界面设计 概述了现代化、灵活的 WordPress 重新设计的几个目标,使其成为构建美观用户体验的乐事。
- 实时协作:架构 扩展了之前关于协作功能的讨论,大致勾勒了该架构在文章和站点编辑器中如何工作。
这些文章是在夏季早些时候发布的原始四篇文章之后发布的。如果你错过了,请务必阅读:
- 实时协作 涵盖了并发协作、共享编辑、同行可见性以及解除当前编辑限制的计划。
- 工作流 设想了在整个编辑过程中(从初稿到发布及以后)的无缝协作。
- 修订版 提议彻底改革当前系统,转而采用一个与区块配合工作、跟踪从服务器堆栈到用户最新编辑的每个数据层变化的系统。
- 媒体库 旨在扩展媒体管理功能,统一界面并改进整体媒体工作流。
可扩展的媒体插入器
Gutenberg 16.2 引入了 registerInserterMediaCategory API 用于注册媒体插入器类别。这允许你在插入器的 媒体 选项卡下添加一个新的子选项卡,你可以用它做很多事情:例如添加更多媒体类型,或与第三方服务集成——我知道你会有更多想法。
查看区块编辑器手册中的 API 文档 以获取更多详情。
垂直文本方向支持
为你的主题新增功能:在 theme.json 中支持 垂直文本方向。只需将 settings.typography.writingMode 设置为 true,UI 中的段落区块就会新增一个 文本方向 设计工具。你可以将其设置为水平或垂直。
想让垂直方向成为段落区块的默认样式吗?将 styles[core/paragraph].typography.writingMode 设置为 vertical-rl。
你可能不会经常为每个段落区块设置默认值。但这个功能应该能让构建混合一些垂直文本以增强效果的图案变得更容易。
插件和工具
加载资源与文章编辑器 iframe
WordPress 6.3 现在将文章编辑器内容放在一个 iframe 中——前提是所有已注册的区块都使用 API 版本 3。如果你的主题和插件使用推荐的方法加载脚本和样式,应该没问题。
当然也有例外(不知何故,总是有例外……),那就是如果你使用 enqueue_block_editor_assets 钩子来排队加载专门针对内容画布的脚本/样式。你可以在 开发说明 和这个 GitHub 工单 中找到你需要使用的钩子和函数及其原因。
开发模式条件函数重命名
在 WordPress 6.3 开发周期中添加的 wp_in_development_mode() 函数有了新名称:wp_is_development_mode(),以使其与类似函数保持一致。如果你在 6.3 发布前测试过这个函数,请确保相应地更新所有实例。
新的 ProgressBar 组件
在 Gutenberg 16.4 中,新的 ProgressBar 组件 允许你在各种场景下向用户显示进度。例如,最终当 站点编辑器加载时,该进度条将取代 Spinner 组件,但该实现尚未到来。
组件更新
现在 RangeControl 组件支持 大的 40px 数字输入尺寸。该尺寸在 多个核心实例中 出现。
你还可以 向 TextControl 组件传递一个 id 属性。这是在其他地方通过 aria-* 属性引用它的好方法。
稳定的 API
Gutenberg 16.4 中 三个实验性 API 已稳定。这意味着当你在生产环境中使用它们时,应该不会遇到向后兼容性问题:
defaultBlockdirectInsertgetDirectInsertBlock
一个最小的 HTML 处理器
作为构建更完整 HTML API 的持续工作的一部分,一个最小版本的 HTML 处理器已进入主干。此功能的目标是随 WordPress 6.4 发布,但工单中 有一些反对意见,质疑是否应该包含它。
HTML 处理器目前仅支持所有 HTML 元素的一个子集。这将给贡献者时间来测试、审查并收集关于初始架构的反馈。
交互性 API 更新与 Create Block 脚本支持
Gutenberg 16.3 为 wp-style 核心指令添加了运行时支持。此外,一个新的 gutenberg_should_block_use_interactivity_api 过滤器钩子允许你按区块禁用交互性 API 支持。
贡献者还为 @wordpress/create-block 包 添加了一个模板,以帮助你开始试验自定义交互式区块。
REST API 更新
REST API 有一个新的 全局样式修订版端点,该功能已随 WordPress 6.3 发布。通过 /wp/v2/global-styles/revisions 访问它。
WP_REST_Templates_Controller 为模板和模板部件对象新增了一个 modified 字段。该字段返回文章的修改日期时间。
主题
宽/全宽图像区块的固定宽度
当图像区块设置为宽或全宽对齐时,嵌套在其中的 <img> 元素现在具有 固定的 100% 宽度。请用你的主题测试此更改,以确保它不会破坏你的设计。
头像边框选择器
头像区块的全局样式选择器现在 定位包装器 而不是内部的 <img> 元素。这就是边框在区块级别应用的方式,但在某些情况下,根据你之前对区块的样式设置,这可能是一个潜在的破坏性设计更改。
模式更新
WordPress 6.3 发布了一个经过大修的站点编辑器导航界面,主要帮助用户管理模式和模板部件。尽管如此,你应该了解这些变化是什么以及它们如何工作,以便回答支持问题。特别是如果你从站点编辑器构建主题。
最大的变化:库 导航项 现在称为 模式。此面板包含同步模式(以前的可重用区块)、非同步模式(可由用户、WordPress、主题和插件注册)和模板部件(按区域分组)。
一些值得查看的相关工单:
- 自定义模式标签已重命名为“我的模式”。
- 在模式详情屏幕添加了同步状态。
- 更新了库马赛克中的模板部件图标。
- 恢复了“管理所有模板部件”页面。
- 为主题模式添加了锁定图标。
- 为模式列表显示客户端分页。
- 为模板部件面板显示更多详细信息。
用于从模式目录获取主题支持模式的辅助函数
如果你一直通过 WP_Theme_Json_Resolver 类方法获取 theme.json 定义的模式,现在 WordPress 6.3 已发布,你可能希望切换到 wp_get_theme_directory_pattern_slugs() 函数。该类是私有的,标记为仅供 WordPress 内部使用。相比之下,辅助函数是供你使用的。它将确保你在未来不会遇到破坏性更改。
更好的 Query Title 区块对作者存档的支持
Query Title 区块在站点编辑器中一直显示一个通用标题——但现在不再如此。现在,在 Gutenberg 16.3 中,它将 在占位符文本中上下文性地显示存档类型。例如,对于通用分类模板,它将输出“分类:名称”,但对于 category-recipes.html 模板,则输出“分类:食谱”。
区块库更新
几个区块新增或更新了设计工具和功能支持:
- 脚注:添加了 对背景、链接和颜色设计工具的支持。
- 预格式化:添加了 对间距的支持。
- 社交链接:包含一个新的 Threads 社交图标。
- 诗歌:按
Enter键现在 创建换行。
严格来说,标题是元素,不是区块。无论如何,现在你可以在 样式 界面中控制它们的 颜色和排版。
错误修复
Gutenberg 和 WordPress 已发布多项修复,应该能让你的工作更轻松。
你可以在 theme.json 中为区块的嵌套元素设置样式。以前也可以,但一个错误 阻止了样式在前端生成。
当你在网站首页时,首页链接区块 会显示 .current-menu-item 类。其他链接就是这样工作的。
新的改进逻辑 用于缓存 wp_theme_has_theme_json() 的结果,考虑到了网站可以切换主题。
活动和资源
开发者时间
七月的开发者时间 向与会者展示了如何使用 CSS 自定义属性为区块设置样式,然后让主题作者能够使用这些结果。
Learn WordPress
Learn WordPress 在七月为 PHP 开发者举办了一场关于 WP-CLI 的研讨会。如果你错过了,或者你在场但想再看一遍,它已在 WordPress.tv 上。
Learn 还有两个新的面向开发者的教程:
开发者博客
过去一个月,开发者博客上发布了几篇文章: