WordPress 社区新闻

开发者有什么新变化?(2026年9月)

查看官方原文 ↗ 发布于

上个月,WordPress世界里是个有趣的时期,7.1版本“Mary Lou”正式向全世界发布。该版本包含响应式样式状态、图标注册等功能。如果你还没更新,那早该更新了。如果你还没追上所有开发者的精彩内容,记得去上个月的汇总中补看。

从那以后,我们又推出了几张新的古腾堡版本:23.8和23.9。这些作品继续在之前的工作基础上进行完善和完善。这些版本中的一些变化可能没有许多新API那么光鲜亮丽,但我预计在接下来的几个月WordPress 7.2开发周期中会有许多重大变化。

说到 WordPress 7.2,Beta 1 计划于 2026 年 10 月 20-22 日发布,最终发布时间在 12 月 8 日至 10 日之间。完整发布时间表请查看 WordPress 7.2 开发周期页面。

一如既往,你可以通过运行WordPress主干和最新的Gutenberg版本来测试最新变更,或者直接启动一个无需设置的Playground实例。

亮点

可运行代码示例收录于代码参考

代码参考现在在浏览器中运行其示例。打开一个页面,点击运行,这个片段就会在由Playground驱动的真实WordPress安装中执行。WP_HTML_Processor::class_list()

示例直接在 DocBlocks 中编写,使用名为 的代码围栏:php interactive

<?php
/**
 * Generator for a foreach loop to step through each class name for the matched tag.
 *
 * ```php interactive
 * $p = new WP_HTML_Tag_Processor( "<div class='free &lt;egg&gt;\tlang-en'>" );
 * $p->next_tag();
 * foreach ( $p->class_list() as $class_name ) {
 *   echo "{$class_name} ";
 * }
 * // Outputs: "free <egg> lang-en "
 * ```
 */
public function class_list() {}

这意味着可运行的示例和文档中的函数存在于同一个文件中。这个想法作为文档提案在文档问题追踪器中已经开放了一段时间。

方块变体和变换可以声明自己的快捷键

Gutenberg 23.9 增加了一个可声明的块键盘快捷键 API。 自2022年以来,已将段落转换为标题2,但该行为是在每个编辑包必须自行渲染的私有组件中硬编码的。Alt+Shift+2

有两个声明网站,关键名称在它们之间有所不同。变体取单个物体:shortcut

wp.blocks.registerBlockVariation( 'core/heading', {
    name: 'h2',
    title: 'Heading 2',
    attributes: { level: 2 },
    isActive: ( blockAttributes ) => blockAttributes.level === 2,
    shortcut: {
        name: 'core/block-editor/transform-to-heading-2',
        description: __( 'Transform the selected block into a heading 2.' ),
        keyCombination: { modifier: 'access', character: '2' },
    },
} );

变换采用复数阵型,类型为“方块”变换,并加一个可选变换,使得一个变换可以携带六个快捷方式而不在块切换器中出现六次。shortcutsvariationName

现在功能必须归功于可扩展的网站编辑器

Gutenberg 23.9 为 Site Editor v2 包包含大约二十个 PR:身份路径、带全局样式编辑的主题预览页、注册插件挂载、实体记录间的画布导航、未保存变更警告,以及以主题支持为门槛的主题界面。你可以关注可扩展网站编辑器的迭代版。Boot

贡献指南现在要求网站编辑器的功能也必须在可扩展的网站编辑器中实现。

目前还处于实验阶段,但如果你扩展了网站编辑器,值得关注这些进展。

插件与工具

DataViews 会丢弃私有 API

如果你绑定了一个插件,可能已经碰到了。原因是 DataViews 作为捆绑包发布,但涉及私有 API,而在一个运行时中两个副本无法解锁彼此的对象。DataViews:移除所有私有API使用会追踪修复过程,最终导致完全从包中丢弃。@wordpress/dataviewsCannot unlock an object that was not locked before@wordpress/private-apis@wordpress/private-apis

令人欣喜的副作用是,DataViews依赖的组件正在获得公共住宅。 以及CalendarRangeCalendar 搬进了@wordpress/ui而不是被复制,withIgnoreIMEEvents 降落于@wordpress/keycodes,现在也公开了。其他控制项作为内部代码被集成在DataViews中。但如果你一直在私有API墙后关注核心组件,现在还有几个只是导入。ValidatedInputControlValidated*

内部块模板进入块设置

Gutenberg 23.8 增加了模板和模板InsertUpdatesSelection 作为块类型设置,替换了同名道具:<InnerBlocks>

registerBlockType( 'core/list', {
    template: [ [ 'core/list-item' ] ],
    templateInsertUpdatesSelection: true,
    // …
} );

这一变化源于实时协作的持续工作。基于prop的路径在挂载后对每个连接的客户端应用模板——因此在文档中插入包含三个协作者的列表块会产生三个列表项。将声明移入块类型设置意味着块及其模板会落在一个存储操作中。

大约有二十个核心块被迁移。道具依然能用,但已经弃用了,所以如果你的区块发布了内部区块模板,建议在7.2发布前完成更改。

仅支持 PHP 模块的模式支持

旗帜现在已经进入block.json模式。这意味着代码编辑器自动补全和验证,而这项功能自 WordPress 7.0 起技术上就运行良好。关于完整参考,2026年3月仅支持PHP的区块注册开发说明仍然是最好的概述。autoRegister

串烧肉壳的持续生成

WordPress Core 使用的语义与许多现成库不同,尤其是在数字方面。现在它作为 @wordpress/kebab-case 包提供,而不是 JavaScript 端的私有工具。_wp_to_kebab_case()

在 JS 中使用时,输出与 PHP 相同:

kebabCase( 'white2white' ); // 'white-2-white'
kebabCase( 'font2xl' );     // 'font-2-xl'
kebabCase( 'white4th' );    // 'white-4th'

编辑现在使用管理员的配色方案

帖子编辑器、控件编辑器和自定义控件编辑器现在都被从活跃管理员的配色方案中包裹起来。ThemeProvider

扩展器的有用之处在于,它是 的公开导出。它读取主类和背景值,这意味着你可以在自己的管理界面做同样的两行环绕,设计系统组件会自动接收用户选择的方案。getAdminThemeColors()@wordpress/admin-uiadmin-color-*

数据视图的时间场

Gutenberg 23.8增加了场地类型和控制。这对工作时间、活动开始时间、预订时段或任何以时间为单位的价值都很有用。请注意,没有日期。time

值以或存储,因此每个访客无论时区如何,9:00am 都等于 9:00am。对于特定时刻,仍然是正确的类型。HH:mmHH:mm:ssdatetime

主题

状态theme.json模式修复

响应式和伪类状态随 WordPress 7.1 一起发布,但验证它们的模式并不完整。Gutenberg 23.8 中出现了多个修正。

这些更改将确保在代码编辑器中查看状态时不会显示为无效:theme.json

更多风格界面策划选项

古腾堡23.8增加了区块式状态控制的选择退出:a和。两者均可通过以下方式筛选:blockStatesEditingEnabledresponsiveEditingEnabledblock_editor_settings_all

add_filter( 'block_editor_settings_all', function ( $settings ) {
    $settings['blockStatesEditingEnabled'] = false;
    $settings['responsiveEditingEnabled']  = false;
    return $settings;
} );

两者都默认为。已经在 、 全局样式或块的样式属性中定义的样式无论如何都会继续渲染。这使得它们在锁定客户构建时非常有用,同时又不会破坏你随之发布的设计。truetheme.json

<标签>现可通过Global Styles定制

古腾堡23.9作为新元素加入了风格。你可以通过其他元素风格来自定义它。它适用于任何将 。核心版涵盖搜索、表单输入、帖子评论表单、存档和分类等模块。它同样适用于第三方封锁。<label>theme.jsonstyles.elements.label<label>

引用、文本输入,并选择可编辑的下拉菜单,在全局样式中进行编辑

cite, , , 已经通过 支持。但最近的一次PR使它们可以通过编辑器中的样式界面编辑,在排版和颜色面板下进行编辑。textInputselecttheme.json

为集团添加垂直和水平区块间隙

集团集团现宣布其支持既有水平也有垂直支持。这意味着 的属性既接受普通字符串,也接受具有 和 键的对象。blockGapblockGaptheme.jsontopleft

编辑器界面仍然限制轴向控制只能用柔和网格布局,这时分开的轴线会很有用。

更新的块体支撑

部分方块新增了支撑,使得在各种布局中更容易使用:

全局样式及其他修复

还有其他一些值得一看的小物品:

游乐场

Playground 现在支持 WebMCP,这是一个草稿浏览器 API,用于将操作暴露为 AI 代理调用的工具。由于 Playground 在嵌套的 iframe 中运行 WordPress,新的代理会在外页宣传嵌入网站的工具,并将调用转发回来。请注意,仅仅注册一个WordPress能力是不够的。插件必须用WebMCP工具包装它。

Playground 也可以运行版本回溯到 0.7。勾选 在设置面板中包含旧版本,选择器覆盖到 6.2 的所有内容,PHP 会自动配对。这有助于回答“这是什么时候坏的?”,不用手动重建旧堆栈。

资源

开发者博客

自上次月度总结以来,我们只发布过一篇帖子。如果你错过了,可以去看看:

概述

过去一个月的文章也值得一读: