跳到正文
原文
WordPress 开发者博客· Justin Tadlock·· 2026-08-11精选编辑评分91

WordPress 7.1 开发者前瞻:响应式区块样式、iframe 编辑器与 Abilities API 更新

What’s new for developers? (August 2026)

编辑导读

WordPress 7.1 计划于 8 月 19 日发布,将加入响应式区块样式、伪状态与自定义状态、公开 SVG Icon API、始终采用 iframe 的文章编辑器,以及 Abilities API 执行与发现机制。

推荐理由

文章汇总 WordPress 7.1 的开发者变更与兼容性风险,并列出测试入口和升级前应检查的具体扩展点。

八月对 WordPress 来说是个重要月份。7.1 版计划于 8 月 19 日发布,而它恰好在 WordCamp US 的最后一天到来。该年度旗舰活动将于 8 月 16–19 日在凤凰城举行。在这一旗舰活动期间发布是个不错的安排,如果你将亲临现场,就能亲眼见证发布过程。

RC1 和 RC2 都在过去一周内发布了。这意味着功能集已经锁定,Field Guide 也已上线。

过去一个月还发布了两个安全版本。WordPress 7.0.2 于 7 月 17 日发布,用于修复一个严重程度为 critical 和一个严重程度为 high 的问题。其严重程度之高,以至于 WordPress.org 对受影响的版本启用了强制更新。随后,WordPress 7.0.3 于 8 月 6 日发布,附带另外十二项修复。如果你维护的任何网站不知为何错过了这两次自动更新,请在阅读本文其余内容之前先去处理。

距离 7.1 发布还有九天,这是你从容测试插件和主题是否与其兼容的最后时间窗口。下面来看看有哪些新内容。

与往常一样,你可以运行 WordPress trunk 并搭配最新版本的 Gutenberg 来进行测试,或者直接启动一个 Playground 实例,无需任何设置。

目录

  1. Highlights
    1. 7.1 Field Guide 已发布
    2. 响应式区块样式进入 Core
    3. 伪状态和自定义样式状态
    4. SVG Icon API 现已公开
    5. 文章编辑器始终使用 iframe
  2. Plugins and tools
    1. 列表表格行标题已迁移
    2. Abilities API 更新
    3. 管理界面的 Design System 主题化
    4. 组件彻底取消 40px 选择加入机制
    5. 管理界面迎来无障碍工具提示
    6. 区块 API 与编辑器扩展能力
    7. 筛选 Site Editor 界面
    8. 小组件基础组件
    9. 备注与协作
    10. 其他值得一看的 Core 变化
    11. React 19 再次延期
    12. WordPress 编码标准
  3. Themes
    1. 三种全新设计工具
    2. Navigation 区块不再传播字号
    3. Global Styles 的值显示在检查器中
    4. Playlist 和 Tabs 已稳定
    5. 其他面向主题的变化
  4. Playground
    1. 全新界面及配套手册
    2. 以编程方式管理网站
  5. Resources
    1. 开发者博客
    2. 开发者说明

亮点

7.1 Field Guide 已发布

WordPress 7.1 Field Guide 已经发布,是本月最重要的一份必读材料。它将每一条版本开发说明集中到一处,包括媒体、无障碍、Abilities API、Global Styles、SVG Icon API、DataViews 和 View Config、编辑器、Design System、持久化管理栏以及外部库。

关于哪些内容未能纳入发布的章节同样很有价值。实时协作未在 7.1 中启用。从插入器中隐藏 Classic 区块的计划已被撤销。React 19 再次延期。On This Day 仪表盘小组件没有上线,而 Guidelines/Knowledge 合并提案仍在持续演进。如果你一直在关注此前这些综述中提到的任何相关内容,这一章会说明它们的当前状态。

响应式区块样式进入 Core

WordPress post editor with the "preview" dropdown selected. The Tablet view is selected and the Responsive Styles item is selected to edit styles in tablet mode.

从春季起,响应式样式状态就在这些综述中持续推进。在 WordPress 7.1 中,它们终于发布了。

现在可以为平板和移动端视口定义样式,既可以按区块类型在 Global Styles 中定义,也可以在单独的区块实例上定义。在 theme.json 中,它们嵌套在 @mobile 和 @tablet 键下:

"styles": {
	"blocks": {
		"core/group": {
			"spacing": {
				"padding": { "top": "3rem" }
			},
			"@mobile": {
				"spacing": {
					"padding": { "top": "1rem" }
				}
			}
		}
	}
}

不存在 @desktop 键,这是有意为之。区块的默认样式就是桌面端样式,对于任何未覆盖的属性,它仍会在所有视口下继续生效。

你可能一直在等待的部分:主题现在可以通过 theme.json 中新的顶层 settings.viewport 属性自行配置断点。移动端默认值为 480px,平板端默认值为 782px。这些值必须是以 px、em 或 rem 表示的非负长度。CSS 函数、百分比和无单位值将被忽略。如果平板端的值等于或低于移动端的值,则仅使用移动端设置。这是顶层设置,因此无法按区块类型分别配置。

使用标准区块支持的区块可自动获得响应式样式,涵盖排版、颜色、背景、边框、尺寸、间距和布局。带有自定义样式控件的区块则不适用。应当以此作为检查自有区块是否符合条件的界线。

你还可以通过一个快速筛选器为用户关闭响应式编辑:

add_filter( 'block_editor_settings_all', 'example_disable_responsive_editing' );

function example_disable_responsive_editing( $settings ) {
	$settings['responsiveEditingEnabled'] = false;
	return $settings;
}

请注意,支持响应式样式意味着在 Core 中更改区块级 CSS。预设实用工具选择器现在会被包裹在 :where() 中。

伪状态和自定义样式状态

WordPress Site Editor with the Styles > Blocks > Button panel open. The "Hover" state for the button is selected for customization.

与响应式样式一同上线的还有另一个经常被主题开发者提及的功能:支持伪状态样式。你可以在 theme.json 中以及通过编辑器定义 :hover、:focus、:focus-visible 和 :active。目前,此功能仅限 Button 和 Navigation Link 区块使用。

下面是一个为 Button 区块设置 :hover 样式的示例(同时支持响应式样式!):

"core/button": {
	":hover": {
		"color": { "background": "var:preset|color|contrast" }
	},
	"@mobile": {
		":hover": {
			"color": { "background": "var:preset|color|contrast-2" }
		}
	}
}

此外还有一项早期自定义状态功能,目前仅支持 theme.json,且没有面向用户的界面。Navigation Link 区块使用它通过 -current 属性为当前菜单项设置样式。自定义状态使用 - 前缀,并生成 CSS,用于定位通过区块的 block.json selectors.states 属性声明的类名。尽管目前适用范围很窄,但值得提前了解。

与响应式编辑一样,此功能也有自己的退出机制:blockStatesEditingEnabled 编辑器设置。

SVG Icon API 现已公开

Modal popup in the WordPress post editor that displays the Icon Library. A custom collection is selected showing various custom SVG icons.

WordPress 7.0 随附了一组供编辑器和 Icon 区块使用的内置 SVG 图标。在 7.1 中,它将成为一项正式公开 API,可注册图标并使用。

每个图标都属于一个集合,集合名称会成为命名空间前缀,这正是避免 my-plugin/star 与 core/star 发生冲突的机制。使用 wp_register_icon_collection() 注册集合,然后使用 wp_register_icon() 添加图标。wp_get_icon() 可在 PHP 中的任意位置渲染图标,并可选择传入尺寸、类名和标签参数。

规划时需要考虑两项限制:

  • 已注册的 SVG 会通过 wp_kses 按照一份刻意保守的允许列表进行清理:仅允许 <svg>、<path> 和 <polygon>。扩大允许列表的工作正在进行。
  • fill 仅允许设置在形状上,而不能设置在外层 <svg> 上,wp_get_icon() 也不会添加它。在 Icon 区块内部,这并不构成问题,因为区块样式表会将其设为当前颜色。但独立调用 wp_get_icon() 时,渲染结果会采用 SVG 自身的填充色(黑色),而不是周围的文字颜色。建议根据传入的类名自行提供 CSS。

文章编辑器始终使用 iframe

自模板编辑器在 WordPress 5.8 中移入 iframe 以来,这一功能就一直在推进。在 7.1 中,文章编辑器迈出了最后一步:无论主题类型、已注册区块的区块 API 版本,还是内容中区块的区块 API 版本如何,文章编辑器始终使用 iframe。注册旧版元框的网站也包含在内。

在 7.0 中,是否采用 iframe 是根据每篇文章中插入的区块逐篇决定的,这意味着编辑器可能会根据内容在 iframe 和非 iframe 模式之间切换。如今,这种条件化行为已被移除。

大多数区块无需改动即可正常工作。确实出现的问题几乎总能追溯到一个根本原因:iframe 拥有自己的文档和窗口,与运行编辑器脚本的后台页面彼此独立。代码若通过全局 document 或 window 来操作画布,就是找错了文档。常见的修复方式是通过 ownerDocument 和 defaultView 从内部元素获取画布文档,并使用 useRefEffect 为画布元素附加和清理事件监听器。本手册中关于 iframe 编辑器的技术考量介绍了完整列表。

插件和工具

列表表格行标题已迁移

这是最可能悄悄破坏你维护的功能的变更。在 changeset 62838 中,文章列表表格的主要 th scope="row" 从复选框列移到了标题列。复选框单元格现在是一个 td,标题单元格现在是一个带有 aria-label(包含文章标题)的 th,响应式视图中的折叠单元格则使用 flex 布局。

这确实是一项无障碍改进:屏幕阅读器现在会根据文章而非可能根本不存在的复选框来识别每一行。但这套标记结构自 2010 年以来基本保持稳定,许多扩展都在隐式依赖它。请检查任何选择 th.check-column 的 CSS 或 JavaScript,以及任何预期行操作和文章标题位于 td 内的代码。

Abilities API 更新

Abilities API 在 WordPress 6.9 中作为基础设施推出。在 7.1 中,它补充了构建实际功能所需的大部分能力:可筛选的执行生命周期、自定义验证,以及共享的发现流程。如果你在开发 AI 集成、自动化工具或协议适配器,这个版本意味着该 API 不再只是基础,而开始成为一套工具包。

共有五条开发者说明涵盖这些内容,值得按以下顺序阅读:

  • 新的执行生命周期筛选器
  • Abilities API 改进
  • 使用 wp_get_abilities() 筛选已注册的能力
  • 统一的公开暴露标志
  • 为客户端兼容性做好 JSON Schema 准备

用于后台界面的 Design System 主题定制

WordPress 7.1 提供了对后台界面组件进行主题定制的初步支持,涵盖颜色、圆角和光标样式。请注意,这与前台无关。此处的“主题定制”直接与后台相关。

wp-theme 样式表以 CSS 自定义属性的形式提供了一套完整的语义设计令牌,因此你可以引用这些令牌,而不必硬编码具体值。wp-theme 脚本句柄提供了一个 ThemeProvider React 组件,用于包裹页面的一部分并覆盖这些令牌值。只需向它提供两种基准颜色,它就会为你生成协调的色阶。 

对于一直希望后台界面既体现自身品牌、同时又看起来属于 WordPress 的插件作者来说,这是第一个真正的机会。令牌参考文档列出了可用的内容。

组件彻底取消 40px 选择加入机制

__next40pxDefaultSize 属性的生命周期已经结束。它于 6.7 引入,在 6.8 中进行了软弃用,并且从 7.1 起不再起任何作用。 

表单控件现在无条件呈现为 40px,传入 __next40pxDefaultSize={false} 也不再能选择恢复为 36px。请从使用代码中移除该属性;它没有替代方案。如果你传入 size="__unstable-large" 只是为了获得更高的控件,也请将其移除。在 BorderBoxControl、BorderControl、FontSizePicker 和 ToggleGroupControl 上,size 属性也已弃用。

后台迎来无障碍工具提示

工具提示在编辑器中已经存在一段时间,但在 wp-admin 的其他部分却没有。WordPress 7.1 新增了 wp_get_tooltip() 和 wp_get_toggletip(),填补了这一空白。前者为仅含图标的控件提供可见的无障碍名称;后者新增一个可触发按钮,用于显示扩展帮助文本。Core 分别在文章元框控件和登录屏幕的“Remember Me”复选框上使用了它们。

CSS 会在全局加载,但 JavaScript 只在 Core 使用它的位置加载。其他地方请同时加载 wp-tooltip。

区块 API 与编辑器扩展性

有几项杂项内容值得关注,可能会影响你的代码:

  • 区块变换现在可以通过 variationName 定向到特定变体,switchToBlockType() 接受变体作为第三个参数。
  • __experimentalCloneSanitizedBlock 和 __experimentalSanitizeBlockAttributes 已稳定。实验性名称仍可使用,但现在会记录弃用通知。
  • 非分页实体现在会返回全部记录。如果你之前从 getEntityRecords() 获取的是截断为 10 条的列表,现在将获得全部内容,因此请检查所有未自行设置限制的渲染位置。
  • 模板部件现在可以使用新的 disableContentOnlyForTemplateParts 设置选择不启用仅内容编辑。

Gutenberg 23.6 和 23.7 中的其他变化:区块绑定在各调用点之间共享上下文组装过程;仅限 PHP 的区块会将当前文章 ID 传递给服务器渲染;检查器控件的样式槽位移回之前的位置;PluginPostStatusInfo 现在可在 DataForm 的文章摘要中使用。Interactivity API 还将其指令重构为可自我注册的模块。

筛选站点编辑器界面

四个新过滤器可让你配置为 Pages、Templates、Parts 和 Patterns 界面提供支持的 DataViews 和 DataForm 组件: 

  • get_entity_view_config_posttype_page
  • get_entity_view_config_posttype_wp_template
  • get_entity_view_config_posttype_wp_template_part
  • get_entity_view_config_posttype_wp_block

每个过滤器都可以设置 default_view、default_layouts、view_list 和 form,因此你可以控制默认布局和排序顺序、用户可选择的布局、侧边栏中的预配置视图,以及快速编辑表单。

回调会收到一个带有合并补丁方法的配置对象,并且必须返回该容器。开发说明中提供了一个可运行的示例,该机制也计划扩展到其他实体。在 Gutenberg 端,视图配置还新增了版本处理和更严格的合并语义。

微件基元

在 Gutenberg 的两个版本发布期间,微件仪表板的工作持续推进,主要方向是采用类型化、声明式的微件定义:

  • 微件基元现在以脚本模块形式提供。
  • 新增 WidgetAttributeField,用于类型化属性模式,并由字段类型注册表提供支持。
  • 微件类别现已通过构建流水线和 REST API 公开。
  • 新增声明式帮助元数据字段和相关性属性。
  • title、description 和 keywords 现在在服务器端进行翻译。

仪表板微件还新增了操作 href 清理和帮助链接清理。

注释与协作

实时协作并未包含在 7.1 中,但自 Beta 1 以来,注释新增了两项功能:针对 @提及的电子邮件通知,以及可共享的修订链接。注释现在也会从评论源查询中排除,这与 7.0.3 中已修复的信息披露问题有关。

其他值得关注的 Core 变化

  • notify_post_author 过滤器现在拥有最终决定权。审批状态被纳入默认值,因此 __return_true 回调现在也会为处于审核中、垃圾邮件或回收站状态的评论发送邮件。
  • 工具栏现在会跨编辑器界面持续保留。如果你扩展了工具栏,请测试你的项目在客户端导航期间的表现。
  • 推测性加载可通过环境变量和常量进行配置。
  • _doing_it_wrong() 中的 WP_Block_Type_Registry::register() 消息获得了上下文。
  • get_file_data() 现在可识别以 <? 标签开头的标头。
  • 模板新增了日期字段,KSES 允许在对话框元素上使用 autofocus。

React 19 再次被推迟

React 19 不会随 7.1 发布。它曾在 Gutenberg 中短暂启用,但后来因发现新旧版 React 之间的交互方式以及插件使用 React 的方式存在意外的不兼容问题而被回滚。WordPress 7.1 仍将使用 18.3。

不过,测试仍在进行。 

Gutenberg 23.4 及更高版本会在 Settings → Gutenberg 下提供一个实验性开关,在运行时切换为 React 19。需要留意两种故障模式:直接打包 react/jsx-runtime,而不是使用 WordPress 提供的外部化脚本;以及依赖 React 19 中已移除的功能,如字符串 refs 或函数组件的 default props。Plugin Check 也在开展相关工作,以自动检测这些问题。

WordPress 编码标准

本月有两个 WordPressCS 版本发布。3.4.0 是常规功能版本,3.4.1 包含安全修复,因此建议尽早升级。

主题

三种新的设计工具

WordPress 7.1 新增了两项区块支持和一项全局样式属性,其中渐变相关支持解决了主题作者多年来一直绕开处理的一个问题。

background.gradient 是对现有 color.gradient 的独立支持,区别在于该值在 CSS 中的落点。旧支持通过 background 简写呈现,它会重置包括 background 在内的每项 background-image 属性,因此区块可以显示渐变或图片,但无法同时显示两者。新支持改为通过 background-image 长写属性呈现,使样式引擎能够在单条声明中将渐变和图片输出为以逗号分隔的值。可通过 block.json 启用:

{
	"supports": {
		"background": {
			"backgroundImage": true,
			"gradient": true,
			"__experimentalDefaultControls": {
				"backgroundImage": true,
				"gradient": true
			}
		}
	}
}

Core 为 7.1 选择了 Group、Accordion、Pullquote、Post Content 和 Quote。相关值位于 style.background.gradient,可在 theme.json 的背景样式组中针对根级别或各个区块进行设置。safecss_filter_attr() 已更新为允许组合渐变与 url() 值,因此你无需额外进行筛选。

dimensions.minWidth 遵循与 minHeight 相同的模式,以 CSS min-width 形式应用,并在主题提供 dimensionSizes 预设时选用这些预设。请注意,除非区块通过 __experimentalDefaultControls 启用,否则它在区块检查器中默认隐藏,但在全局样式中默认显示。此外,全局样式现已支持 text-shadow。

Navigation 区块不再传播字号

Navigation 区块不再将其 font-size 配置强制应用到 core/navigation-link、core/navigation-submenu、core/page-list 和 core/home-link 的标记上。旧行为在与相对单位结合时会产生严重的层层相乘,在嵌套下拉菜单中依次将 1.5em 乘以 2.25em 再乘以 3.375em,并导致编辑器画布与前端的排版表现不一致。该区块现在依赖标准的 CSS 文本继承。

如果你的主题直接针对导航项上的 has-{slug}-font-size,开发说明提供了一个过滤器,可为子区块恢复旧版类。原始讨论见 #76416。

全局样式值显示在检查器中

当某个值来自 theme.json 时,区块检查器控件现在会反映继承的全局样式值,而不会显示为空;对于作为链接的区块,按级别区分的标题元素样式和链接元素样式也能正确解析。面向用户的继承界面目前仍处于 Gutenberg 实验阶段,因此这一功能只适合观望,不宜据此进行开发。

同一时间窗口内还落地了两项相关修复:预设按 slug 选择,因此共享同一值的两个渐变仍能保持各自的标识;共享同一十六进制值的颜色预设也存在同样问题,此次也已修复。

播放列表和标签页现已稳定

这两个区块都已处于实验状态一段时间,并一直以这种状态出现在这些汇总中。在 Gutenberg 23.6 中,Playlist 区块和 Tabs 区块已稳定下来,Tabs 还新增了用于重新排序标签页的工具栏按钮。两者都在 7.1 的路线图上。如果你在标记结构仍在变动时暂缓了对它们进行样式设置,现在就是动手的时候了。

面向主题的其他变更

  • 使用 theme.json 的主题现在可以选择不显示区块。
  • 自定义 CSS 会在区块库样式之后输出,而 Additional CSS 不再在 Query Loop 内重复输出。
  • calc() 表达式现在接受无单位零值。
  • 样式引擎会保留重要的渐变声明,区块间距也能正确处理嵌套数组值。
  • Term Name 已迁移到 text-align 区块支持,继续推进自 7.0 以来开展的标准化工作。
  • Latest Posts 新增了布局和区块间距支持。
  • Cover 现在可以限制允许使用的视频嵌入提供商。
  • Video 能处理 render_block_core_video() 中非小写的 VIDEO 标签。
  • Navigation Link 和 Submenu 无需启用 Gutenberg 插件即可执行文章状态检查,修复了草稿和已删除链接的回归问题。
  • WP_Theme_JSON::to_ruleset() 不再进行隐式强制转换,WP_Theme::get_post_templates() 对大型主题的运行速度更快。

Playground

全新界面,以及配套手册

WordPress Playground 这个月非常繁忙。最直观的变化是全新界面,其核心从一次启动一个临时实例,转向管理多个站点。与此同时,现在还有了完善的 Playground Handbook。

如果你使用 Playground 进行演示、支持问题复现,或针对 7.1 RC 构建进行测试,现在正是试用并反馈问题的好时机。

以编程方式管理站点

新的 Site Manager API 让你可以通过代码创建、列出、修改和删除 Playground 站点,而不必在界面中逐项点击。这为脚本化测试矩阵和自动化演示环境打开了大门。如果你一直在维护自己的 Blueprints 包装工具来做类似的事情,不妨了解一下。

另外还新增了两项资源:

  • One Playground, three workflows 介绍了新版 Playground agent skill,以及如何让指导内容在不同界面中保持一致。
  • 一篇关于使用 Blueprints 导入内容的指南;很多人在构建第一个 Blueprint 后经常会询问这方面的问题。

Playground 仍然是测试 7.1 而无需接触服务器的最快方式。RC 公告提供了一个预配置实例,运行 beta 频道。

资源

开发者博客

除了惯常的月度汇总外,上个月开发者博客还发布了三篇新文章:

  • 为 WordPress 区块主题打造符合品牌形象的维护模式
  • 构建你的第一个 AI 驱动 WordPress 插件
  • 重新思考 do_action():以对象表示事件,以类名表示钩子

开发者说明

另外,一定要了解适用于你工作的 WordPress 7.1 开发者说明:

  • WordPress 7.1 中通过持久化工具栏实现一致的导航
  • WordPress 7.1 中的客户端媒体处理
  • 媒体库无限滚动现在默认启用,用户可自行选择关闭
  • 全局样式中的文本阴影支持
  • 自定义 HTML 区块内可编辑的区块
  • WordPress 7.1 中的编辑器组件更新
  • 在 WordPress 7.1 中注册和渲染 SVG 图标
  • React 19:推迟到 WordPress 7.1 之后,在 Gutenberg 中进行实验
  • WordPress 7.1 中的新区块支持:背景渐变(background.gradient)
  • WordPress 7.1 中的新区块支持:最小宽度
  • WordPress 7.1 中 Abilities API 的新执行生命周期过滤器
  • WordPress 7.1 中 jQuery UI 更新至 1.14.2
  • 为 WordPress 7.1 客户端兼容性准备 JSON Schema
  • WordPress 7.1 中的 Abilities API 改进
  • WordPress 7.1 中的设计系统主题化
  • WordPress 7.1 中筛选站点编辑器界面
  • WordPress 7.1 中 iframe 编辑器的变化
  • 文章列表表格的行标题已更改
  • WordPress 7.1 中引入名称和信息提示工具
  • WordPress 7.1 中用于 Abilities 的统一公开暴露标志
  • WordPress 7.1 中的其他编辑器更改
  • WordPress 7.1 中的响应式区块样式和可配置视口
  • WordPress 7.1 中的伪状态和自定义样式状态
  • WordPress 7.1 中使用 wp_get_abilities() 筛选已注册的能力
  • notify_post_author 过滤器现在对文章作者通知拥有最终决定权

感谢 @bph 和 @juanmaguitar 对本文提供反馈和审阅。

来源:WordPress 开发者博客 · https://developer.wordpress.org/news/2026/08/whats-new-for-developers-august-2026/

部分链接为推广/关联链接。