社区新闻

开发者新动态(2025年8月)

时间已至八月,我们刚刚发布了通往 6.9 版本的路线图。从演进站点编辑器到完善内容创作,再到性能改进,一切都在计划之中。这意味着 2025 年的最后几个月注定会激动人心。

如果你在深入了解本月其他新闻之前,想先读点“轻松”的内容,我建议你至少浏览一下:

亮点

扩展核心区块库?这或许在计划之中

装饰性图片,黑色背景带有点状边框。中央是WordPress区块类型名称和图标的列表。

关于为核心添加新区块的讨论一直在进行。只需跳转到Gutenberg仓库,阅读当前标记为New Block的63个工单。

过去,似乎有一种强硬立场,反对将任何可能过于小众的内容纳入核心,而让第三方开发者来填补空白。在过去的二十年里,这是一个很好的系统,但区块与其他插件不同。主题作者依赖拥有完整的工具包来创建独特的设计,而不需要用户费心安装额外的插件。

好消息是,之前的立场可能正在软化。Gutenberg首席架构师Matías Ventura在工单区块库的新区块添加中表示:

我认为,核心库中没有这些区块会严重限制主题构建者(和用户)可以依赖的表达能力,以构建出色的设计,并且可能破坏整体体验,迫使人们转而寻求功能更全的区块库,或者如果他们计划广泛发布某些内容,则完全放弃。区块的承诺之一是我们最终可以使主题具有互操作性,同时不削弱表达力。如果一个人需要在目录中发布主题或模式,无法依赖该区块的存在,或者因为不使用核心区块而被排除在外,那么为这些区块单独开发一个插件帮助不大。

我的观点是,我们应该添加更多的区块,并修正我认为在当今时代阻碍采用的立场。

我们距离完全敞开大门还有几步之遥,但GitHub议题中已经链接了几个可能成为候选区块的工单和PR。我毫不怀疑图标区块提案获得了最多的支持。至少,它在最近几周引发了大量讨论。

你怎么看?核心区块越多越好?还是留给插件?

提议对 theme.json 设置进行更多控制

上周,Gutenberg仓库中出现了一个新工单,将允许通过 theme.json 对区块编辑器的用户界面和体验进行更深层次的控制。该工单还推动通过文章类型注册来实现这种控制。

这还不是一个既成事实,但这是一个令人兴奋的提案,背后可能有真正的动力。目前,theme.json 对用户体验的控制远未达到功能完备的程度。但有希望。现在,所有核心区块的UI已经通过 ToolsPanel 组件实现了标准化,贡献者们已经朝着实现这个次要提案迈出了第一步。

该工单概述了实现这种控制水平必须采取的后续两个步骤:

  • 审核所有区块工具面板,确保所有检查器控件和工具栏选项都可以通过 theme.json 启用/禁用。这要求所有核心区块都遵守这些标准。
  • 确保这种新机制可以在全局和细粒度级别上使用。

作为一名主题作者,我对能够对用户体验实施更多控制的前景感到兴奋。这将使我能够自由地实现过去几年里的一些想法,而这些想法之前缺乏核心支持。

自定义区块绑定支持

我已经喋喋不休地说了太多“可能”在某个时候发生的事情。让我深入探讨一个几乎可以确定会实现的功能。

随着最新的WordPress主干版本激活,你可以自定义哪些区块及其属性可以被绑定。截至WordPress 6.8,此支持仅限于标题、段落和按钮区块。但现在,随着新的 block_bindings_supported_attributes_{$block_type} 过滤器钩子的出现,一切都敞开了大门。

一旦补丁提交到WordPress主干,我没花多少时间就进行了尝试。我的第一个测试是使视频区块的 src 属性可绑定,如这张截图所示(是的,这确实是一个自定义绑定在幕后工作):

网页截图,上面有一个小鸭子的视频。

想测试你自己的绑定吗?以下是我用于使视频区块的 src 属性可绑定的过滤器:

add_filter( 'block_bindings_supported_attributes_core/video', 'devblog_bindable_video_attrs' );

function devblog_bindable_video_attrs( array $attrs ): array
{
	return array_merge( $attrs, [ 'src' ] );
}

剩下的就交给你了。如果你需要更新知识,请务必查看开发者博客上的区块绑定API教程

我遇到的唯一问题是,自从该API以其初始功能集问世以来,我没有足够的时间去尝试过去一年左右的所有想法。我将会玩得很开心!

插件与工具

密切关注

在上个月的月度汇总中,我提到了WordPress联合创始人Matt Mullenweg创建的一个工单:插件的分阶段发布和推出。在过去的几周里,贡献者们持续向WordPress.org推送新代码以实现这一功能。虽然还没有通过Make Plugins P2发布官方消息,但如果你在官方目录中有插件,值得关注。

Gutenberg仓库中关于“复合”区块的讨论正处于早期阶段。其想法是,应该有一种更简单的方法,让包含特定嵌套区块的区块能够在UI中展示这些子区块以进行样式设置,同时又足够精细,可以通过 theme.json 单独设置样式。详情区块被认为是该概念的合适候选(例如,设置其 <summary> 元素的样式)。

现在讨论将走向何方还为时过早,但它可能同时满足主题作者对更精细设计控制的需求和用户对更简单界面的需求。

AI构建模块

核心AI团队发布了其WordPress AI构建模块文章,简要概述了四个构建模块,并有专门的文章详细介绍每一个:

如果你有兴趣将这些工具引入核心,请加入#core-ai Slack频道的讨论。

WordPress编码标准 3.2 发布

WPCS的最新版本于上个月发布,包含多项新功能添加和一般性更改。其中一些包括:

  • 更严格的元数据使用检查
  • 针对PHP heredoc语法的嗅探
  • 改进的PHP 8.1+可调用支持
  • 将已弃用功能检测扩展到WP 6.8.1

这仅仅是列举了少数几项。该版本还包括改进的文档和其他优化,以使你的代码更好。查看发布变更日志了解所有更新的详细信息。

新的日期日历组件

Gutenberg 21.3 添加了 DateCalendarDateRangeCalendar 组件,这是对当前不支持日期范围的 DatePicker 组件的必要改进。

新组件创建了一种统一的方法来处理日历,同时支持单个日期和日期范围。它们还提供了更灵活的布局选项。

数据视图进展

贡献者在上个月合并了几个关于数据视图的重要工单:

Playground

WordPress Playground度过了重要的一月,尤其是考虑到其文档的39页被翻译成了五种语言:古吉拉特语、西班牙语、日语、菲律宾语和葡萄牙语。

还有新的Playground CLI文档、更新的Web实例文档以及新的视频资源

常规更新

上个月进行了几项常规更新:

CLI新增功能

Playground CLI的一些不错的新增功能包括:

  • 通过 --experimental-blueprints-v2-runner 标志添加了蓝图v2。
  • 如果你需要Playground在你的工作流程中管理cookie会话,可以使用--internal-cookie-store选项。
  • 如果未设置 --debug 标志,则停止打印堆栈跟踪,并拒绝无法识别的选项。

Xdebug支持更新

实验性的Xdebug支持在上个月的月度汇总中已经发布,但贡献者们继续通过以下方式改进它:

主题

封面区块视频的海报图像

在过去的几年里,一些主题作者已经实现了自定义解决方案,为视频区块实现 poster 属性。通常,如果附件存在特色图像,则会回退使用它。但大多数用户不会想到上传图像,因为其UI已从区块检查器控件中移除。

Gutenberg 21.3 为视频区块引入了上传海报图像的专用控件

该PR的缺点是图像仅存储在区块级别,并未添加到媒体附件本身。因此,在用户没有添加自己的海报的情况下,你可能仍然需要那个自定义脚本作为后备方案。

按钮元素继承排版样式

自Gutenberg 21.3起,默认 theme.json 中定义的按钮元素从其父级继承排版样式。该元素的完整样式现在如下所示:

{
	"styles": {
		"elements": {
			"button": {
				"typography": {
					"fontSize": "inherit",
					"fontFamily": "inherit",
					"fontStyle": "inherit",
					"fontWeight": "inherit",
					"letterSpacing": "inherit",
					"textTransform": "inherit",
					"lineHeight": "inherit",
					"textDecoration": "none"
				}
			}
		}
	}
}

这应该不会对大多数主题产生负面影响,但值得测试你的设计以确保兼容性。如果确实影响了你的设计,很可能是因为在你的主题中,按钮元素在过去在前端和编辑器之间不一致。

文章内容区块的HTML标签选择器

Gutenberg 21.3 还为文章内容区块添加了通过高级 → HTML元素下拉菜单选择标签的支持,为你提供了对文档标记的更多灵活性。该区块现在支持四个可选元素:

  • <div>(默认)
  • <main>
  • <section>
  • <article>

欢迎的错误修复

贡献者在过去几个Gutenberg版本中解决了几个与主题相关的问题:

值得注意的用户变化

像往常一样,有一些变化更针对用户,但在这个与开发相关的汇总中值得注意,因为它们直接影响你的用户。

图库站点标志区块现在都使用 ToolsPanel 组件来管理其设置。这是更大努力的一部分,旨在为所有核心区块带来一致的区块检查器。这项努力也可能导致所有区块设置都可以通过 theme.json 进行配置

视频区块现在还支持一次性添加多个轨道。这消除了为每个文件重复此过程的需要。

资源与新闻

过去一个月,开发者博客还有一篇额外的文章。这是一个教程,展示了如何在不使用 theme.json 的情况下设置区块主题的样式

本月这一部分内容较少。虽然我认为新文章的节奏很快就会加快,但开发者博客仍然需要你!考虑加入我们,与社区分享你的知识。这会是一次有益的经历。