社区新闻

开发者有哪些新动态?(2024年9月)

WordPress 6.6.2 小版本的候选版本 1 (RC1) 已于 9 月 4 日发布,最终版本将与本文发布同步。它包含了核心部分的 15 项修复和块编辑器的 11 项修复。相当多的提交和 PR 都在处理由降低的 CSS 特异性引起的问题。它还修复了与 Interactivity API 的派生状态以及连接到 iframe 渲染的文章编辑器相关的错误。所有修复的列表可在 RC1 的发布文章中找到。 

如果你想了解下一个主要 WordPress 版本可能包含的内容,请阅读通往 6.7 的路线图以获取所有预期更新的列表。WordPress 6.7 计划于 2024 年 11 月 12 日发布。如果你是产品负责人、机构开发者或维护数十个网站的顾问,你可能需要开始规划测试时间表。发布周期时间表可以为你提供帮助。 

上个月,Learn WordPress 网站的新设计发布了。本月,培训团队正在开发下一个插件开发者课程。为了缩短制作时间,团队发布了征集贡献者:中级插件开发者学习路径。有多个职位/任务可供选择。在每一个任务中,你都将为开源项目做出重大贡献,并影响成千上万学习如何为 WordPress 构建插件的开发者。

与往常一样,本文包含了过去一个月与开发相关的更新列表。其中大部分仅包含在 WordPress 主干版本或 Gutenberg 19.0 和 19.1 中。

亮点

插件注册模板的新 API

随着 Gutenberg 19.1 版本的发布,插件开发者获得了一个期待已久的、简化的注册模板方式,并提供默认的前端输出。这些模板可以由站点编辑器加载,并允许主题开发者和站点构建者根据站点设计进行修改和调整。 

下面的代码示例说明了一个基本用例。该 API 还包括主题构建者自定义此类模板的方法。你还可以注销模板并创建自定义分类模板。教程在 WordPress 6.7 中通过插件注册块模板,将引导你完成一个示例,展示如何使用新 API 为 Book 自定义文章类型提供单篇文章、归档和自定义模板。在即将举行的开发者时间:初探 WordPress 6.7 中的模板注册 API录制)中,贡献者将演示模板注册 API 的基础知识、如何在模板层次结构中工作,以及如何集成自定义字段、块变体等。你的问题将在活动的问答环节得到解答。 

wp_register_block_template( 'devblog-plugin-templates//example', [
	'title'       => __( 'Example', 'devblog-plugin-templates' ),
	'description' => __( 'An example block template from a plugin.', 'devblog-plugin-templates' ),
	'content'     => '
		<!-- wp:template-part {"slug":"header","area":"header","tagName":"header"} /-->
		<!-- wp:group {"tagName":"main"} -->
		<main class="wp-block-group">
			<!-- wp:group {"layout":{"type":"constrained"}} -->
			<div class="wp-block-group">
				<!-- wp:paragraph -->
				<p>This is a plugin-registered template.</p>
				<!-- /wp:paragraph -->
			</div>
			<!-- /wp:group -->
		</main>
		<!-- /wp:group -->
		<!-- wp:template-part {"slug":"footer","area":"footer","tagName":"footer"} /-->'
] );

自定义标题级别

在 Gutenberg 19.0 中,一个长期存在的需求——为内容创作者自定义标题块的默认级别——已经得到解决。新的 levelOptions 块属性允许你通过模式和模板中的块标记来限制可用的标题级别。你也可以使用自定义过滤器修改属性。代码示例在拉取请求中提供。该新属性也适用于使用标题元素的核心块:文章标题查询标题站点标语站点标题评论标题

为核心块和自定义块自定义标题级别

为 25 个以上块添加边框支持 

Gutenberg 19.0 和 19.1 为 25 个核心块带来了额外的设计工具支持,主要是边框控制。

支持
Column边框半径
Comment Template边框
Comments Form边框
Time To Read边框
Categories List边框
Date边框
Excerpt边框
Terms边框
Title边框
Site Tagline边框
Site Title边框
Table of contents边框
Comment Author Name边框
Comment Content 边框
Comment Date边框
Author Biography边框
Author Name边框
Author边框
Query Title 边框
File边框
List Item 边框
List 边框
Preformatted边框
Tag Cloud边框
Quote Block 对齐

WordPress Playground 文档重构

为了给开发者和用户提供更好的学习路径,WordPress Playground 的文档结构进行了一些更新。根据你的使用场景,你将找到三个子站点:蓝图、开发者文档和 API 参考。下一步计划是为特定用例创建更多指南。它们将深入探讨蓝图步骤的组合,以构建主题演示或插件预览。

Playground 文档首页截图

块绑定 UI 的第一个版本

块绑定在 WordPress 6.5 中为开发者和主题构建者引入。Gutenberg 19.0 为内容创作者引入了一个用户界面,用于在编辑器的侧边栏中编辑存储在自定义字段中的值。 

此功能仅是第一个迭代版本,需要进一步测试。目前,该功能仍处于实验阶段,需要通过 Gutenberg > Experiments 页面启用。你可以使用此 Playground 实例,其中一切已设置就绪。 

书评示例截图中的块绑定 UI

插件和工具

注销数据视图操作

数据视图组件随 Gutenberg 19.1 获得了额外更新。在这一轮中,该组件现在提供了一种方法来注销围绕移至回收站永久删除恢复文章的核心操作。秉承这一理念,组件的用户还可以注销用于复制文章模式模板部件的操作。开发者还可以移除查看文章文章修订的操作,或阻止用户重命名文章重新排序页面。 

如果你渴望了解更多关于此组件的信息,可以在其Storybook 页面上找到文档。设计团队刚刚发布了数据视图更新 #1,以告知大家该组件即将进行的改进。 

动态覆盖样式

随着 Gutenberg 19.0 的发布,核心贡献者使钩子 useStyleOverride 对插件开发者可用,以便样式可以由块添加到画布中。这在打包带有自定义样式的组件库时尤其有用,而不是指导开发者在所有正确的位置排队加载单独的样式表。 

作为 TimePicker 子组件的时间输入

有时用户只需要一种与 TimePicker.component 的日期分开输入时间的方式。开发者现在可以在他们的插件和应用程序中提供单独的 TimePicker.TimeInput 字段。文档可通过 Storyboard 获取

RadioControl 选项的帮助文本

自 Gutenberg 19.0 发布以来,使用 Radio Control 组件的开发者现在可以通过添加额外的 options[].description 属性为每个列出的选项添加帮助文本。当该组件在通过新的 wp-admin 为访客和用户提供输入表单的上下文中使用时,这一点变得更加重要。  

iPhone 图像自动转换为 JPG 

随着 WordPress 6.7 的发布,团队将推出 HEIC 图像自动转换为 JPEG。一个用例是允许 iPhone 用户将图像从手机拖放到 WordPress 实例中,并在他们的文章或页面中使用。浏览器对 HEIC 的支持非常低,因此需要转换。如果你需要禁用它,请使用 image_editor_output_format 钩子。

add_filter( 'image_editor_output_format', function( $output_format ) {
    unset( $output_format['image/heic'] );
    return $output_format;
} );

Interactivity API 文档更新

随着最新的 Gutenberg 插件发布,Interactivity API 的文档得到了扩展,并深入探讨了该 API 的三个核心概念: 

通过 HTML API 启用纯文本修改

HTML 标签处理器中现在有一个新函数可用:set_modifiable_text()。它使开发者能够通过执行适当的转义,安全地替换 HTML 文档中的 HTML 文本节点。

主题

从其他主题获取样式变体

WP_Theme_JSON_Resolver_Gutenberg 类包含一个新的 get_style_variations_from_directory() 方法。它允许你从活动主题外部(例如从站点上安装的其他主题)检索样式变体。

此更改对于希望扩展站点编辑器的插件开发者很有用。