开发者有哪些新动态?(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 参考。下一步计划是为特定用例创建更多指南。它们将深入探讨蓝图步骤的组合,以构建主题演示或插件预览。
块绑定 UI 的第一个版本
块绑定在 WordPress 6.5 中为开发者和主题构建者引入。Gutenberg 19.0 为内容创作者引入了一个用户界面,用于在编辑器的侧边栏中编辑存储在自定义字段中的值。
此功能仅是第一个迭代版本,需要进一步测试。目前,该功能仍处于实验阶段,需要通过 Gutenberg > Experiments 页面启用。你可以使用此 Playground 实例,其中一切已设置就绪。
插件和工具
注销数据视图操作
数据视图组件随 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() 方法。它允许你从活动主题外部(例如从站点上安装的其他主题)检索样式变体。
此更改对于希望扩展站点编辑器的插件开发者很有用。