开发者新动态(2023年6月)
距离上一轮《开发者新动态?》系列文章发布,又一个月过去了,真是难以置信。过去几周发生了不少事情。
WordPress 迎来了 20 岁生日。人们在网上分享庆祝视频,也有人与朋友和蛋糕一起庆祝。在这些地方,WordPress 的生日是件大事。而 20 周年?……嗯,这更是格外特别。
另一方面,WordPress 6.3 的开发周期也在持续推进。有很多内容要介绍,让我们开始吧。
测试本文提到的功能时,请务必使用最新版本的 WordPress trunk 和至少 Gutenberg 15.9.1。
重点内容
迈向同步模式的第一步
正如老话所说,“如果开发者每次询问同步模式我都能得到一个镍币……”
同步模式是一个备受期待的功能,它允许你创建设计锁定、可更新的模式。其核心思想是模式的内容可以编辑,但其设计方面将严格控制在主题之下。
这个功能尚未完全实现,但最近的一个拉取请求为模式添加了一个实验性的 syncStatus 属性,第二个补丁为模式块包装器添加了一个类名。链接的工单中存在已知问题,贡献者们正在努力解决。
这是朝着让同步/可更新模式成为每个 WordPress 开发者工具箱中工具的一步——实际上,是一大步。
Details 块不再是实验性的
Gutenberg 15.8 引入了一个实验性的 Details 块,它输出一个 <details> HTML 元素及其子元素 <summary>。该块现已稳定,预计将随 WordPress 6.3 发布。
但为了让该块脱离实验阶段,贡献者们缩减了其原始版本。最初,Details 块有两个嵌套块——一个用于编辑摘要,一个用于编辑内容。当前版本是一个块。
这种变化的好处是:它简化了用户体验。缺点是,仅使用设计工具无法自定义摘要元素。你必须改用自定义 CSS。
交互性 API 和行为 UI 已捆绑
用于构建交互式前端功能的标准方法——交互性 API,现已捆绑在 Gutenberg 插件中。目前它是实验性的,但其包含将允许贡献者开始测试想法并解决 API 中的错误。
其中一个想法是 Image 块上的灯箱功能,它使用了一个新的行为 UI。另一个是与 File 块的实验性集成。你可以测试这两者及更多功能:访问 WordPress 管理后台的 Gutenberg > 实验,并启用 交互性 API 和行为 UI 设置。
公共 API 可能不会在 WordPress 6.3 中落地,但早期的测试和反馈可能为它在 6.4 中发布铺平道路。
插件与工具
命令中心的公共 API
命令中心的实验性标志已被移除,其API 现已公开。因此你可以开始尝试自定义命令。
给它起什么名字?这是个问题,无论是在 Make Core 博客上关于此事的公开反馈请求中,还是另一个单独的讨论中。
优先化插入器项目
容器类型的块现在可以优先化哪些嵌套块出现在插入器的顶部。你可以通过 <InnerBlocks> 组件的 inserterPriority 参数传递一个块或块变体名称数组来使用此功能。
转换块变体
块变体现在会显示在块切换器中。这使得你可以更轻松地从一个块的变体切换到另一个。
模板侧边栏的新插槽
一个新的 PluginTemplateSettingsPanel 插槽允许你向编辑器中的模板侧边栏添加自定义控件。它是 Gutenberg 15.9 的一部分,该版本还使编辑文章屏幕中的模板编辑器与站点编辑器在外观和工作方式上保持一致。
为缓存组设置最后更改值
一个新的 wp_cache_set_last_changed() 辅助函数允许你为缓存组设置最后更改值。该函数可用于使缓存失效。
get_pages() 现在内部使用 WP_Query
一个寻求 get_posts() 和 get_pages() 之间一致性的13 年老工单已经解决。
get_pages() 函数现在是对 WP_Query 的包装,但你仍然应该能够使用其自定义参数,如 child_of,这些参数在内部会映射到适当的查询参数。为确保向后兼容,请帮助彻底测试它。
新钩子
过去一个月,WordPress trunk 中出现了几个新钩子:
pre_wp_setup_nav_menu_item:一个用于短路wp_setup_nav_menu_item()的过滤器。get_pages_query_args:过滤在get_pages()中传递给WP_Query的查询参数。
jQuery 更新
在过去的一个月里,核心捆绑的 jQuery 版本升级到了 3.6.4,随后又升级到了 3.7.0,以匹配最新版本。
主题
流体排版利用主题定义的“wide”尺寸
流体排版系统的一项增强现在使用 theme.json 中定义的 layout.wideSize 来设置最大视口宽度。本质上,这定义了字体停止变大的点。在此之前,它被设置为 1600px,这通常比主题定义的宽尺寸要宽得多。
块库更新
社交链接现在有了颜色类。这意味着它们可以正确反映样式 UI 中的更改,尤其是在主题的样式变体之间。十六进制颜色代码仍然存在,主要是作为用户切换到没有相同颜色别名的主题时的回退方案。
最近的一项增强还为 Code 块添加了宽和全对齐支持。
错误修复与还原
get_the_author() 函数现在返回一个空字符串,如果它在全局 $authordata 变量设置之前被调用。之前,它返回一个 null 值,这在 PHP 8.1 中会触发“null 到 non-nullable”的弃用通知。
一个先前的更改引入了一个回归错误,破坏了当宽度设置时边框样式自动应用的逻辑。一个最近的补丁纠正了这个错误。
核心中的另一个回归导致为块注册的样式在其他样式之后加载。这个更改不得不被还原,因为它破坏了自 WordPress 5.0 以来一直存在的预期加载顺序。
文章内容块在文章编辑器中不再允许
你不能再将文章内容块插入到文章编辑器的内容画布中,即使它嵌套在查询循环内。这不影响已注册的块模式——如果它们内部包含文章内容,你仍然可以插入模式本身。但这可能会改变你未来使用自定义查询构建某些页面的方式。
值得关注的以用户为中心的变化
这些变化值得关注,因为它们与主题或前端输出相关。但它们不应直接影响你构建主题的方式:
- 站点编辑器有了新的修订版 UI。
- 你可以查看块主题的主题预览。
- 语言和文本方向选项现在成为富文本格式化工具的一部分。
- 站点编辑器现在会等到完全加载后才显示。如果你有一个获取大量数据的扩展,请针对此更改进行测试,看看它对用户体验有何影响。
FSE 计划摘要
FSE 计划的第 24 次测试邀请对志愿者开放。它涵盖了 WordPress 6.3 预期的几项功能,因此是熟悉本开发周期功能并留下反馈的好机会。
过去一个月发布了前几轮 FSE 计划的两份摘要:
活动与资源
开发者时间
WordPress Playground,一个无需 PHP 服务器即可在浏览器中运行的实验性 WordPress,正接近更正式的发布。在过去的一个月里,两个独立的开发者时间会议演示了该项目,时间安排适用于两个不同的时区。请在 WordPress.tv 上观看:
走廊闲聊
两次走廊闲聊会议围绕主题化进行了很好的讨论:
学习 WordPress
Learn WordPress 上发布了一个新的面向开发者的教程:
开发者博客文章
过去 30 天内发布了四篇新文章: