社区新闻

开发者新动态(2024年4月)

多么充实的一个月!WordPress 6.5 “Regina” 因一个小问题推迟一周后正式发布。其中包含大量与开发者相关的好东西,大部分你可以在过去的月度汇总或过去几个月在开发者博客上发布的许多其他教程中查看。

开发周期持续运转,这意味着是时候将目光投向下一个主要版本:WordPress 6.6。在本期月度汇总中,你会发现许多即将到来的新事物。

注意: WordPress 6.6 将正式停止支持 PHP 7.0 和 7.1。新的最低支持 PHP 版本将是 7.2.24。这不应影响大多数用户,但如果你属于仍在使用这些版本的那 2.45% 的 WordPress 用户,请务必在 6.6 版本发布前升级任何旧版本。

与往常一样,请务必使用 WordPress trunk 和最新版本的 Gutenberg 插件测试下面列出的更改。

亮点

交互式网格布局及其他

WordPress 文章编辑器,内容区域中布置了一个 3x3 的黑色方框网格。

强大的网格支持即将登陆 WordPress。我知道自从在开发者博客上介绍以来,你们很多人一直在要求更多功能。在过去几周里,贡献者为网格布局添加了一些重要功能。

在 Gutenberg 17.9 中,添加了实验性的“交互”模式,允许你拖放嵌套在网格内的列和行中的块。你可以通过访问 WordPress 管理后台的 Gutenberg > Experiments 并启用 Grid interactivity 选项来启用此功能。

Gutenberg 18.0 发布了新的增强功能,使该功能更强大:

全局样式中的颜色和排版预设

颜色面板。有一个包含 9 个预设颜色集的网格可供选择,颜色各异。” />

为了向传统上提供可选排版集和配色方案的主题作者致敬,贡献者在 Gutenberg 17.9 中构建了一个类似的系统。在站点编辑器的 样式 面板下,颜色排版 面板现在都将显示预设,用户可以选择这些预设来快速进行全局更改。

这个新功能由现有的全局样式变体系统支持。通过主题 /styles 文件夹中的 JSON 文件定义的任何颜色或排版设置和样式将自动成为颜色或排版预设。实际上,你甚至可以为此目的创建仅包含颜色或排版的样式变体。

根级背景图片支持

背景面板,并显示了上传的渐变图片。” />

Gutenberg 18.1 允许你在 theme.json 中为站点定义顶级背景图片,这将为你创造新颖独特的设计提供许多机会。使用下面的示例代码测试此功能:

{
	"$schema": "https://github.com/WordPress/gutenberg/raw/trunk/schemas/json/theme.json",
	"version": 2,
	"styles": {
		"background": {
			"backgroundImage": {
				"url": "https://i0.wp.com/wordpress.org/files/2023/12/sotw-dotorg-drawer.png?w=1807&ssl=1",
				"source": "file"
			},
			"backgroundPosition": "center center",
			"backgroundRepeat": "repeat",
			"backgroundSize": "cover"
		}
	}
}

目前还没有方法定义 theme 源并引用存储在主题中的相对图片路径。这预计在后续增强中实现。

此更改还附带了一个 UI 控件,允许你从站点编辑器的 样式 面板设置背景。

需要反馈:元框的重大更改

文章编辑器中元框的显示方式即将发生重大变化。与其在屏幕底部显示它们,不如这个 PR 收集并显示它们在一个与顶部工具栏按钮连接的模态窗口中:

WordPress 文章编辑器,带有“显示元框”切换图标,屏幕上覆盖着“自定义字段”模态窗口。

在 WordPress 的大部分历史中,元框一直是让用户从文章编辑屏幕输入自定义数据的事实上的标准界面,至少在 5.0 版本块编辑器推出之前是这样。为了统一站点和文章编辑器,需要在 iframe 中加载文章编辑器,而当前的元框实现阻止了这一点。此更改将在编辑器和前端视图之间提供一致的所见即所得体验。

理想情况下,如果你正在构建一个通过自定义数据输入扩展编辑器的插件,你应该过渡到界面中可用的SlotFills之一,以创建更集成的用户体验。

贡献者请求协助使用各种插件测试此 PR。要测试,请从工件的 ZIP 文件,将其解压缩到测试环境的插件目录中,然后激活该插件。它需要解压缩,不能通过插件页面上传。请在工单上留下你的反馈。如有问题,你也可以加入 WordPress Make Slack 的 #outreach 频道

插件和工具

Playground 插件及其他

WordPress Playground 项目继续快速发展,我们一如既往地鼓励你,如果你还没有尝试过,就去试试看。

最大的新闻是新的Playground 插件的可用性,它允许你在 Playground 中运行站点的沙箱,甚至可以在沙箱内测试和安装插件。仍然有一些问题需要解决,例如这个大量数据可能导致的性能问题。但请尝试一下并报告你遇到的任何问题

其他值得注意的项目包括:

  • 开始了一个新的Blueprints PHP 库,用于创建与 Playground、Docker 和托管环境配合使用的一致站点设置工具。
  • 稳定性改进,包括超过 50 个已解决的问题,涉及与原生 PHP 的兼容性、崩溃和错误报告。
  • 关于Blueprints 模式版本 2 的讨论仍在继续,欢迎你就 Blueprints 的未来工作方式提供反馈。

Block Bindings API 更新

Block Bindings API 的初始版本随 WordPress 6.5 发布,但在 API 达到应有的强大功能之前,还有很多工作要做。一个好的起点是更新“已连接到自定义字段”消息,当块绑定到自定义数据源时,该消息在 Gutenberg 17.9 中得到了解决。

6.5 版本中还发布了一些关键的错误修复:

组件更新

Gutenberg 18.0 更新了对几个组件的支持:

编码标准更新

WordPress 编码标准和 PHP_CodeSniffer 项目在过去一个月都已更新。如果你依赖其中任何一个,请务必升级:

Requests 库更新

用于与其他站点交互处理 HTTP 请求的核心库 Requests 已更新至版本 2.0.11,包含多项更改。最值得注意的是对 PHP 8.4 支持的更新。此版本的库将随 WordPress 6.6 一起发布

统一文章和站点编辑器

正在进行一项工作,以统一和对齐文章和站点编辑器之间的发布功能。这要求将以前仅在 edit-post 包中可用的插槽、操作和选择器移动到 editor 包中,该包在两个编辑器中都可用。值得注意的是,以下插槽现在在站点编辑器中可用:

如果你从 edit-post 包导入这些插槽,它们将继续工作,但当 WordPress 6.6 在 7 月发布时,它们将被弃用。

代码块和换行符

作为 WordPress 6.5 的一部分,RichText 组件被更新,以便换行符始终序列化为 HTML 元素。这样做是为了提高性能,但产生了意外的后果,即破坏了向代码块应用语法高亮的第三方插件。

在 WordPress 6.5 发布之前实施了一个修复,但任何直接修改代码块保存函数的插件都需要进行额外的调整。拉取请求中提供了指导。

如果你依赖的语法高亮插件在 WordPress 6.5 中遇到问题,你可以通过向主题添加以下过滤器来自行实施临时修复:

/**
 * 在前端所有代码块中用换行符替换换行标签。
 * 此过滤器修复了代码语法块中的一个问题。
 *
 * @param string $block_content 即将被过滤的块内容。
 * @return string 过滤后的块内容。
 */
function themeslug_code_block_add_line_breaks( $block_content ) {
	return str_ireplace(
		[ '<br>', '<br/>', '<br />' ],
		"n",
		$block_content
	);
}

add_filter( 'render_block_core/code', 'themeslug_code_block_add_line_breaks', 10, 1 );

Create Block 中添加了帕斯卡命名法模板变量

Create Block 包有一个新的 namespacePascalCase 模板变量,用于填充有效的 PHP 命名空间。因此,当用于 PHP 命名空间和 @package 标签时,create-block 的命名空间会变成 CreateBlock

扩展文章内容块列表

Gutenberg 18.1 为编辑器引入了一个新的基于 JavaScript 的过滤器钩子 editor.postContentBlockTypes。它允许你自定义应启用的块列表,即使是在锁定的模板内部使用时。

主题

WordPress 6.5 灯箱设置回归

WordPress 6.5 引入了一个回归,影响了 theme.json 中灯箱设置的工作方式。该问题使得无法在启用灯箱的同时禁用用户编辑。有一个修复措施,已随版本 6.5.2 发布。

降低全局样式的特异性

Gutenberg 18.1 中落地了两个 PR,旨在降低全局样式的特异性,这几乎是任何构建过主题的人都应该欣赏的。这些工单是从早期降低特异性的努力中拆分出来的组成部分:

如果你的主题有自定义样式,请务必彻底测试这些更改,以确保兼容性。

自定义块 CSS 仅在用时渲染

Gutenberg 16.9 引入了一个很好的增强功能,减少了在任何给定页面上加载的 CSS。你的块特定自定义 CSS 现在只会在前端使用该块时渲染。

检查器控件中添加了模板部件替换流程

这更多是一个面向用户的增强功能,但如果你构建和分发块主题,它应该会减少你的支持麻烦。在 Gutenberg 18.1 中,用户可以通过侧边栏面板中的检查器侧边栏面板替换模板部件,该面板将显示可用的替代部件和模式。此更改使全局替换模板部件的过程变得更加容易。

模式覆盖使用块名称

模式覆盖功能并未按原计划随 WordPress 6.5 发布。但该功能的工作仍在继续,以在 6.6 版本中发布。主要问题之一是如何将块表示为模式中可覆盖的。当前的解决方案是使用现有的块命名功能

在 Gutenberg 18.0 中,你可以将媒体与文本块设置为使用特色图片,就像现有的封面图片实现一样。这为 Query Loop 块内部或单篇文章/页面模板的基于列的布局开辟了丰富的设计可能性。

块库更新

过去一个月添加了几个值得注意的块库更新:

值得注意的错误修复

资源

开发者时间和 Learn WordPress 教程

对于开发者时间和 Learn WordPress 来说,过去几周非常忙碌。查看下面的录制和教程:

Hallway Hangouts

Hallway Hangouts 是社区聚集在一起讨论 WordPress 重要话题的机会。4 月份举办的两场活动的回顾已发布:

开发者博客

如果你还没有,请查看开发者博客上最新的教程,并继续关注更多展示 WordPress 6.5 现已可用功能以及为 WordPress 6.6 开发的功能的内容: