
WordPress 6.9 即将发布,我们迫不及待地想要体验这款全球最受欢迎的内容管理系统最新版本中的众多全新功能。
WordPress 6.9 的主要改进包括:
- 新增核心区块(例如手风琴、数学公式等),让内容创作更加灵活。
- 编辑器进行了重大改进,使构建体验更加流畅直观。
- 新增开发者 API,例如 Abilities API、更新的 Interactivity API 和 Block Bindings API,以及其他计划在 6.9 版本中推出的升级。
- 改进了工作流程和协作功能,包括笔记、区块可见性选项以及扩展的命令面板。
这些更新旨在为所有用户带来更佳体验:WordPress 用户将享受到更强大的编辑和协作工具,而开发者则能受益于增强的 API 集带来的更高级的集成功能。
内容很多,让我们一起来看看 WordPress 6.9 中那些最让我们兴奋的新功能:
新增核心区块
继 GitHub 上的这个 issue 之后,WordPress 6.9 引入了六个新区块,扩展了区块编辑器的创作功能,并免去了用户安装额外插件的麻烦。这些新区块包括手风琴(折叠)、术语查询、阅读时间、数学公式、评论计数和评论链接。
多年来,贡献者们一直在争论新区块应该放在核心库中还是继续作为插件存在。WordPress 6.9 采取了务实的做法。正如 Mathias Ventura 所说:
我认为,如果这些区块没有被纳入核心库,会严重限制主题开发者(以及用户)构建优秀设计的能力,并可能破坏整体体验,迫使人们转而使用功能更全面的区块库,或者如果他们计划广泛发布内容,则可能完全放弃。
现在,让我们仔细看看 WordPress 6.9 中合并到核心库中的每个新区块。
手风琴可折叠区块
期待已久的 Accordion 折叠式区块终于要加入核心了。它并非单个区块,而是一个嵌套的区块结构,您可以通过区块查看器轻松浏览。

文章编辑器中的手风琴式区块结构。
每个手风琴式组件都包含以下内部组件:
- Accordion:用于容纳嵌套手风琴项目的容器。
- Accordion item:它是直接嵌套的元素,由标题和面板组成。
- Accordion heading:可点击的标题,用于展开和收起面板。
- Accordion panel:此面板包含手风琴项目的内容,可以包含任何类型的区块。

代码编辑器中的手风琴式区块。
该组件采用极简风格,但 Justin Tadlock 的优秀指南“WordPress 6.9 中的手风琴样式”提供了自定义手风琴外观所需的基本知识。
有关新手风琴式组件的完整详细信息,请查看 PR #64119、#71222 和 #71388。
术语查询
WordPress 6.9 引入了一个新的术语查询组件。与查询组件类似,它显示的是术语而不是文章。这个新区块实际上是一个术语模板,其中包含一个带有术语名称和术语计数的行区块。

术语查询区块结构
术语查询区块提供多种配置选项。您可以设置分类法、对列表项进行排序、指定要查找的项,以及选择显示或隐藏空术语或嵌套术语。您还可以设置要显示的术语数量。

术语查询区块设置
术语模板有两种显示模式:列表和网格。网格视图允许您自定义网格元素的位置和列数。

术语查询区块有两种模式:列表和网格。
您还可以更改区块元素的标签。例如,您可以为术语名称区块使用 h2 元素。您还可以在术语查询区块的各个元素之间插入其他区块。下图显示了行之间的分隔符区块。

自定义术语查询区块
要了解更多关于术语查询区块的信息,请查看 PR #70720 和 Issue #49094。
阅读时间
顾名思义,“阅读时间”区块会显示当前文章或页面的阅读时间。该模块有两种模式:“阅读时间”和“字数统计”,并且可以选择将阅读时间显示为范围或特定值。

阅读时间区块

字数统计模式下的“阅读时间”区块
数学公式
“数学公式”区块允许您在内容中插入数学公式。只需使用 LaTeX 语法编写公式,它们就会被转换为相应的数学符号。

“数学公式”区块允许您在文章和页面中插入数学公式。
也可以插入行内公式。

在 WordPress 6.9 中添加行内数学公式
评论链接和评论计数
“评论链接”和“评论计数”区块不再标记为实验性功能。这两个区块现在都可以在站点编辑器和文章编辑器中使用。
现有区块的改进
WordPress 6.9 对许多区块进行了小幅和大幅更新,改进了它们的功能和/或易用性。
修复了标题区块的背景内边距问题
WordPress 6.9 修复了标题区块背景内边距的 CSS 优先级问题。在此版本之前,应用于标题区块的内边距样式会影响其他使用标题的区块,例如手风琴区块。
由于使用了 :where() 伪类,使用背景的标题的 CSS 选择器变得更加精确,详情请参阅开发者文档。
h1, h2, h3, h4, h5, h6 {
&:where(.wp-block-heading).has-background {
padding: ...;
}
}
如果主题对非标题区块的标题元素使用了 .has-background 类,则这些元素将不再应用默认的背景内边距。
按钮和分隔符区块的可选HTML元素
为了提升可访问性,您现在可以选择按钮和分隔符区块的 HTML 元素。
对于按钮区块,您可以在其高级设置中选择 <a> 或 <button>。

按钮区块高级设置
分隔符区块可以选择 <hr> 或 <div>。

分隔符区块高级设置
文章内容区块的标签名称选择器
从 WordPress 6.9 开始,您可以为文章内容区块选择语义合适的包装器。您可以选择 <main>、<section> 或 <article>。

文章内容区块的 HTML 元素选项
社交链接的自定义链接图标
新增的 block_core_social_link_get_services 过滤器允许开发者使用区块变体为社交链接区块添加自定义链接图标。此功能为自定义社交链接区块提供了更多选项,并免去了核心管理大量服务列表的麻烦。
您可以在 PR #70261 中找到技术细节和注册社交链接变体的代码。下图显示了文章编辑器中的效果。
![]()
WordPress 6.9 中的自定义链接图标
在查询循环区块中按菜单顺序排序
除了文章标题和日期之外,您现在还可以在查询循环区块中按菜单顺序对支持页面属性的文章类型进行排序。要体验此新功能,请创建多个页面并使用快速编辑功能分别编辑每个页面。

在“页面”屏幕中更改菜单顺序。
您还可以通过单独编辑每个页面来更改菜单项顺序。在左侧的“页面”侧边栏中,单击“操作”按钮(右上角的三个点)。然后,选择“顺序”。此时将弹出一个窗口,其中包含一个用于设置菜单顺序的数字字段。

从“操作”菜单中选择“菜单顺序”。

更改菜单顺序
设置页面顺序后,创建一个新页面并添加一个查询循环区块。选择“页面”作为文章类型,并按“菜单顺序”进行排序。
数据库中所有文章类型均可使用 menu_order 值;但是,您需要注册对页面属性功能的支持,才能使此设置适用于您的自定义文章类型。
有关此功能的更多信息,请参阅 PR #68781。
导航区块更新
导航区块已进行多项更新。以下是主要更新的简要列表:
导航链接区块的链接界面新增了一个“创建页面”按钮。此更新包含立即发布页面的选项。

从导航链接区块的链接界面创建页面

立即发布选项
即使按钮区块包含在导航菜单中,此功能也可用。

按钮区块链接界面中的“创建页面”命令
借助区块绑定 API,如果链接指向实体(例如页面或文章),则导航链接区块的 URL 属性会在原始 URL 更改时动态更新。

同步链接 URL
导航链接区块设置侧边栏新增了一个切换选项,用户可以将导航链接配置为在新标签页中打开。此前,“在新标签页中打开”选项仅在上下文菜单模态链接中可用。新增后,该选项更容易找到,因为它位于侧边栏所有其他设置旁边。

导航链接区块链接界面中的“在新标签页中打开”选项
现在,您可以从编辑器界面为导航菜单区块设置透明背景。在 WordPress 6.9 之前,您需要使用自定义 CSS 代码才能实现此效果。
可伸缩标题和可伸缩段落区块变体
可伸缩标题和可伸缩段落区块是两种新的变体,它们会自动拉伸文本以适应容器的整个宽度。
您可以通过两种不同的方式插入这两种变体:直接从区块插入器插入,或从标题和段落区块工具栏的下拉菜单插入。

可伸缩标题和可伸缩段落区块变体

转换为可伸缩段落
封面区块新增海报图片支持
得益于新增的 poster-image 组件,封面区块现在支持海报图片。这对于大型视频和网络连接速度较慢的用户来说尤为实用,能够显著提升用户体验。
现在我们已经了解了核心区块的主要新增功能和改进,接下来让我们看看 WordPress 6.9 如何根据个人职责,促进团队协作进行内容创作。此版本引入了两项强大的功能,将显著增强编辑器内的协作和工作流程:笔记和可见性。
WordPress 6.9中的注释区块
现在您可以在文章编辑器中为注释区块添加注释。此功能支持团队成员之间的异步协作,方便您跟踪活动并简化编辑工作流程。
由于此功能仅适用于文章编辑器,因此用户必须拥有该文章的 edit_posts 权限才能添加注释。这意味着:
- 已登录且具有管理员或编辑角色的用户可以查看所有文章的所有注释。
- 作者和投稿人可以查看和编辑他们创建的注释。
- 订阅者无法查看注释。
要添加新注释,请点击注释区块工具栏中的“添加注释”按钮。

注释区块工具栏的“选项”菜单中将出现一个新的“添加注释”选项。
这将显示一个新的“注释”侧边栏和一个注释面板,您可以在其中添加注释。

在 WordPress 6.9 中为注释区块添加注释
添加第一条注释后,您可以点击出现的“所有注释”按钮来切换注释侧边栏的显示/隐藏状态。

所有备注控制均位于编辑器设置工具栏中。
备注可以解决、修改或删除。

在 WordPress 6.9 中编辑备注
默认情况下,文章和页面已启用备注功能,但借助新增的 notes 支持,您也可以为自定义文章类型启用备注。以下是一个为自定义文章类型添加备注支持的简单示例:
register_post_type( 'book', array( 'label' => 'Books', 'public' => true, 'show_in_rest' => true, 'supports' => array( 'title', 'editor' => array( 'notes' => true ), 'author', 'excerpt', ), ) );
注册自定义文章类型时添加备注支持非常简单。但是,为现有文章类型添加备注支持则稍微复杂一些。幸运的是,核心开发人员已经在努力简化这一流程,我们可以期待在未来的 WordPress 版本中看到此功能的更新。
从技术上讲,备注就是评论,存储在 wp_comments 表中,comment_type 字段的值设置为 note。要通过插件以编程方式访问备注,请使用 get_comments() 函数,如下所示:
$args = array( 'post_id' => $post_id, 'type' => 'note', ); $notes = get_comments( $args );
请注意,尝试从插件检索注释时,必须指定 note 类型,因为默认情况下,注释类型的评论不会包含在查询结果中。
当用户向某个区块添加笔记时,文章作者会收到一封通知邮件。这些邮件默认启用,但可以在 WordPress 控制面板中禁用。具体操作为:依次点击“设置”>“讨论”>“何时给我发送邮件”,然后取消勾选“任何人发布注释”选项。

WordPress 6.9 中的电子邮件通知设置
开发者可以使用 notify_post_author 过滤器以编程方式控制这些通知。
请注意,这是备注功能的初始版本。开发团队已经在着手开发 WordPress 7.0 的下一个版本。
此外,在 WordPress 6.9 中,备注功能仅在区块级别可用。内联备注功能将在未来的版本中实现。
有关新备注功能的更深入分析以及多个代码示例,请参阅开发者说明和 WordPress 6.9 的区块评论迭代文档。
区块可见性控制
WordPress 6.9 引入了新的区块 API 和新的界面,用于控制前端和编辑器中的区块可见性。
此功能可用于隐藏尚未准备好显示的区块,并且与新的备注功能完美互补。现在,团队可以协作创建页面,并在页面创建完成并获得批准后才最终确定各个部分。
要体验这项新功能,请创建一个新文章或页面,并添加一个或多个区块或样板。然后,从“区块设置”下拉菜单或列表视图中隐藏该区块或样板,并在编辑器和前端查看效果。

WordPress 6.9 中的区块隐藏

新的区块可见性控制
命令面板扩展至管理后台
命令面板现已在站点编辑器和 WordPress 后台(Ctrl+K 或 Command+K)中可用,使导航更加便捷快速。在面板中输入命令即可进行搜索、浏览后台或直接执行操作。例如,输入“add”将弹出包含“添加文章”、“添加媒体文件”、“添加用户”等操作的菜单。

文章页面中的命令面板
目前已收到多项关于扩展和改进命令面板的提案,未来还将添加新的命令。请关注“命令面板概述”问题中的讨论,以获取最新信息。
开发者新特性
现在,让我们来看看 WordPress 6.9 中最令开发者兴奋的部分。一套全新的 API 让开发者能够轻松地将插件提供给 AI 系统使用。但这还不是全部!WordPress 6.9 还对现有 API 进行了诸多改进,包括交互 API、区块绑定和数据视图 API。
接下来,我们将详细探讨这些新功能。
Abilities API
WordPress 6.9 引入了 Abilities API,这是一个全新的功能接口,它提供了一个标准化的注册表,允许插件、主题和 WordPress 核心以人机可读格式公开其功能。
所有功能都可以在这个集中式注册表中正式注册,以便通过 PHP、REST API 和 AI 解决方案进行一致的发现、验证和执行。
新的 Abilities API 直接惠及 WordPress 用户,它允许外部服务(例如 AI 助手、外部应用程序和命令面板等 UI 功能)以标准化的方式理解和执行 WordPress 操作(例如发布或编辑)。
这对开发者有什么好处?
首先是清晰度:一个功能是指一个已注册的特性,它包含描述、输入和输出。
新 API 的第二个重要方面是标准化。无论在何种环境下,该 API 都能确保命令的编写和理解保持一致。这些环境可以是 WordPress 控制面板、区块编辑器、通过 REST API 访问的外部应用程序,或是 AI 助手。
另一个关键方面是工作流自动化。借助 Abilities API,您可以创建操作序列,使开发人员能够构建复杂的自动化工作流。
开发人员可以将 Abilities API 用于各种用途,包括扩展命令面板的功能、创建自动化工作流等等。
注册后,AI 系统(例如 ChatGPT 和 Gemini)即可访问这些功能:
API 管理注册和权限,而协议适配器则将这些信息转换为外部 AI 系统可以理解的格式。这在 WordPress 功能和 AI 助手之间建立了强大的连接,第一方 API 作为公开逻辑的权威来源。
功能是“具有已定义输入、输出、权限和执行逻辑的独立功能单元”。
API 提供了一组函数,使您能够管理功能和功能类别的各个方面。它还提供了新的 REST API 端点、操作和过滤器钩子。
要注册一项新功能,API 提供了新的 wp_abilities_api_init 操作和 wp_register_ability 函数。以下是该函数的签名:
wp_register_ability( string $name, array $args ): ?\WP_Ability
wp_register_ability 函数接受以下参数:
$name(string) 是功能的唯一标识符$args(array) 是参数数组
如果注册成功,该函数返回一个 WP_Ability 实例;如果注册失败,则返回 null。
以下示例展示了如何注册一个功能,摘自文档:
add_action( 'wp_abilities_api_init', 'my_plugin_register_site_info_ability' );
function my_plugin_register_site_info_ability() {
wp_register_ability( 'my-plugin/get-site-info', array(
'label' => __( 'Get Site Information', 'my-plugin' ),
'description' => __( 'Retrieves basic information about the WordPress site including name, description, and URL.', 'my-plugin' ),
'category' => 'data-retrieval',
'output_schema' => array(
'type' => 'object',
'properties' => array(
'name' => array(
'type' => 'string',
'description' => 'Site name'
),
'description' => array(
'type' => 'string',
'description' => 'Site tagline'
),
'url' => array(
'type' => 'string',
'format' => 'uri',
'description' => 'Site URL'
)
)
),
'execute_callback' => function() {
return array(
'name' => get_bloginfo( 'name' ),
'description' => get_bloginfo( 'description' ),
'url' => home_url()
);
},
'permission_callback' => '__return_true',
'meta' => array(
'annotations' => array(
'readonly' => true,
'destructive' => false
),
),
));
}
这段代码的作用如下:
wp_abilities_api_init是注册新技能时要挂载的操作,确保在尝试注册新技能之前,技能 API 已完全初始化。wp_register_ability是注册新技能的函数。第一个参数是技能的唯一标识符(例如my-plugin/get-site-info);第二个参数是一个设置数组。label是一个人类可读的标签,用于用户界面(例如,命令面板)。description是技能的描述。category是技能的类别。output_schema是一个数组,用于定义技能返回的数据。execute_callback是一个回调函数,在技能被调用时执行。permission_callback是一个函数,用于验证用户或代理是否拥有执行该技能的权限。meta是一个可选元数据数组。
开发者可以在以下资源中找到更多详细信息和代码示例:
- Abilities API in WordPress 6.9
- Introducing the WordPress Abilities API
- Abilities API
- Abilities API GiutHub repo
- Abilities API Developer Documentation
区块绑定API改进
WordPress 6.9 对区块绑定 API 进行了多项改进。
首先,区块绑定 API 的支持范围已扩展至其他区块。
- “日期”区块现在可以接受任何日期,无论文章的发布日期或更新日期如何。这得益于新增的
core/post-data数据源。您可以自行尝试:在文章中添加一个“日期”区块并为其指定一个自定义日期。然后,添加另一个“日期”区块并选择“文章日期”变体。接着,更改发布日期,保存文章,并查看差异。有关技术细节,请参阅 PR #70585。 - WordPress 6.9 还增加了对图像区块 caption 属性在样板覆盖中的支持。
编辑器 UI 已得到增强,可以显示不同的区块绑定数据源。用户只需点击几下即可在数据源之间切换,并绑定或取消绑定属性(见下图)。
WordPress 6.9 还为开发者带来了一些有趣的改动。
服务器端 API 中新增了一个 block_bindings_supported_attributes_{$block_type} 过滤器。该过滤器允许您指定哪些区块属性可以连接到自定义数据源。
在客户端,您现在可以使用源注册函数中的 getFieldsList 方法来注册自定义数据源。
开发者文档提供了一段非常有用的代码,您可以将其复制并粘贴到浏览器控制台中,以查看改进后的区块绑定 UI。
下图显示了段落区块的新数据源选择器。

WordPress 6.9 中的区块绑定 UI
DataViews和DataForm的增强功能
DataViews 和 DataForm API 提供了一种现代化的标准化方式来查看和管理结构化数据,例如文章列表、页面列表或媒体列表。
这两个 API 的用途各不相同。
- DataViews API 专为查看和浏览数据而设计。它允许您创建视图,包括表格、网格和列表。您还可以使用它来搜索、筛选和排序数据。
- DataForm API 专为修改数据集的元素而设计。

DataViews 示例:在站点编辑器中以列表布局显示页面
WordPress 6.9 对这两个 API 进行了多项改进。以下是主要新增功能列表:
- DataViews 新增了字段、控件和运算符。新增功能包括:新的媒体、布尔值、电子邮件和数组字段类型定义,新的
checkbox和toggleGroup编辑控件,新的筛选运算符等等。 - 验证系统已完全改进。所有字段现在都支持“
required和elements规则”,并且可以通过自定义函数定义自定义验证。 - 除了
datetime字段类型之外,DataViews 现在还支持date字段类型。这允许您仅根据日期显示项目。此外,新增的Calendar组件还支持按日期筛选。 - 新版本还新增了
DateCalendar和DateRangeCalendar组件。 - 表格布局得到了进一步改进。现在可以使用 Control/⌘ + 单击来选择多个项目。
- 新增的
groupByField属性允许您根据字段值对数据进行可视化分组,从而更轻松地组织数据。此功能适用于网格布局和表格布局。 - WordPress 6.9 还对 DataViews 进行了性能改进。在 6.9 版本之前,DataViews 中使用的
FeaturesImageView组件会以全尺寸加载图像。这意味着包含大量预览图像的网站需要加载数兆字节的图像。但是,从 6.9 版本开始,网格布局使用响应式图像,这显著提高了使用大量图像的网站的后端性能。
DataViews 的其他值得注意的变更包括:
- 引入了锁定筛选器,允许用户在不修改筛选器的情况下查看其效果。这对于预配置的视图非常有用。
date字段新增了一个编辑控件。- 现在可以自定义 DataViews 的空状态,允许您自定义消息或提供 React 节点以进行进一步的自定义。
有关 DataViews 和 DataForm API 的新增功能和变更的完整列表,请参阅开发说明以及 PR #70567 和 #70578。
Interactivity API的增强
顾名思义,Interactivity API 使开发人员能够创建对用户交互做出实时响应的交互式模块。简而言之,这是一个用于构建丰富的用户体验并使网站更具吸引力、动态性和互动性的工具。
Interactivity API 最初在 WordPress 6.5 中引入,在此版本中进行了重大更新。以下是一些最值得关注的新增功能。
为Interactivity API指令添加ID
现在您可以为交互 API 指令添加 ID。此功能非常实用,因为它允许您绕过同一个 HTML 元素中不能使用多个同名属性的限制。
要为指令分配 ID,请在指令后添加三个破折号 ( --- ),后跟 ID,例如:
<div data-wp-watch---my-unique-id="callbacks.firstWatch" data-wp-watch---another-id="callbacks.secondWatch" ></div>
脚本模块和样式表加载
此项更改实现了更全面、更流畅的客户端导航。WordPress 现在会在客户端导航“之后”替换样式表并加载脚本模块。这意义重大。
- 新算法会重用之前页面共享的样式表,加载这些页面中不存在的新样式表,并禁用未使用的样式表。这最大限度地减少了网络请求。
- 得益于新的
importmap定义,脚本模块的管理也更加高效。 - 最后,预取功能会预加载所有尚未预加载的样式表和脚本模块。
交互元素内的路由区域
另一项新增功能是支持在交互元素内放置路由区域。此前,路由区域(即用户点击链接时页面更新的区域)必须是根交互元素。这意味着如果路由区域位于另一个交互元素内,则内容将不会更新。WordPress 6.9 对此进行了更改,允许开发人员将路由区域放置在交互元素内。
路由区域新增attachTo属性
路由区域现在接受一个新的 attachTo 属性,该属性可以在 data-wp-router-region 指令中定义。有了这个新属性,即使路由区域不在初始页面上,现在也可以渲染它。 attachTo 的值必须是一个 CSS 选择器,指向要注入路由区域的父元素。以下是开发者文档中的一个示例:
<div
data-wp-router-region='{ "id": "example/region", "attachTo": "body" }'
>
I'm in a new region!
</div>
getServerState和getServerContext同步
getServerState() 和 getServerContext() 函数已得到改进。现在,当这些函数跟踪的值在客户端导航期间未发生变化时,这些值将被重置。此外,仅保留当前页面上的属性,而删除先前页面的属性。
要更深入地了解交互 API 的改进以及代码示例,请参阅 WordPress 6.9 中的交互 API 客户端导航改进和 WordPress 6.9 中交互 API 的更改。
要全面了解交互 API,请参阅我们的深度指南。
面向开发者的其他更新
WordPress 6.9 为开发者引入了多项更新。以下是开发者说明的简要列表:
- Updates to the HTML API
- Admin menu search query changed
- New streaming block parser
- PHP 8.5 support
- Accessibility improvements
- Updates and bug-fixes to the wp_mail() function
- Improved UTF-8 support
- Cache Keys for Query Groups
- Improvements to URL-escaping functions
- Updates to the post editor for full iframe integration
- Standardize Block Inspector Settings to use ToolsPanel
- Legacy Internet Explorer Code Removed
- Preformance improvements
- More changes for developers
展望未来:从WordPress 6.9到7.0
WordPress 6.9 在区块编辑器、API 和协作工作流程方面进行了意义重大的升级,这些更新将在 7.0 版本中继续发展。随着平台变得更加动态,并与 AI 驱动的工具深度集成,拥有高性能的托管服务变得愈发重要。


评论留言