WordPress 6.1 候选版1 已经发布,是时候看看我们可以期待哪些变化了。发布团队和许多贡献者在Trac和GitHub上都努力工作;超过120 项增强和功能请求、241 个错误修复、42 项其他祝福任务,使其在 Trac 中获得超过 400 个工单和50 个 Trac 拉取请求,将Gutenberg更改纳入核心。在 Gutenberg repo 中有 1684 个拉取请求,其中 425 个新功能和增强功能以​​及 428 个错误修复,其余的是工具、测试、文档和代码质量。

新版本带来了巨大的性能改进、可访问性增强、第一个基于默认块的主题标记为accessibility ready、新的钩子和函数、私有函数开放供公众使用等等。

性能

在6.1 的45 个 Trac 票证中,19 个组件获得了各种性能改进。WordPress开发最显着的改进出现在 WP_Query 和REST API中,这将影响您下一页加载的很大一部分。

如果您从性能更新中得到一件事,那就让它在 WP_Query 中缓存查询。对于许多开发人员来说,这是一个漫长的梦想,一旦您对其进行测试,这将是您所希望的一切。REST API 对于几个启动缓存更丰富,对prepare_links(如果你想要的话)更轻。站点健康将检查您的持久对象缓存和页面缓存,而几个私有缓存API函数现在是公共的。您还可以按组刷新缓存、声明支持的缓存功能、验证缓存键等。

除了 Query、REST API、站点健康Site Health 和 Cache API,在多站点Multisite、Bootstrap、媒体Media、文章类型Post(Post Types)、编辑器Editor、数据库Database 和许多其他组件中可以找到性能改进。这里有太多的变化无法一一提及,但请您阅读有关 WordPress 6.1 性能改进的指南。

WordPress 6.1 性能领域指南

其他性能改进:

  • 文章/文章类型 – 文章标题不应在 get_user_data_from_wp_global_styles 方法上进行翻译。#55392
  • 快速/批量编辑 – 在处理批量编辑文章的数据时检查show_in_quick_edit 分类属性。#42474
  • 修订– latest_id 用作最新修订 ID 的数组键。#55857

可访问性

与性能类似,可访问性改进包含28 个 Trac 票证,分布在 13 个组件中。我们有第一个基于块的捆绑主题,标有accessibility ready 标签、2023主题和2022主题。表单、站点/模板和块编辑器、管理屏幕和更多可访问性改进将在 6.1 版本中提供。

  • WordPress 6.1 可访问性改进
  • WordPress 6.1 中必填字段的函数和钩子

块编辑器

WordPress 6.1将10个Gutenberg版本引入核心- 13.1、13.2、13.3、13.4、13.5、13.6、13.7、13.8、13.9、14.0和14.1。

在插件的这 10 个版本中的许多更改中,我们做出了很多努力来使经典主题中的块和其他 Gutenberg 功能更可用,这将确保更容易过渡到混合和基于块的主题。

扩展日常开发中非常需要的块编辑器工具的各个部分的新方法,例如使用 create-block 工具搭建块变体、内容锁定更新、过滤theme.json数据、扩展查询块、样式引擎、新的React钩子以简化数据访问等等。

  • 创建块脚手架工具更新
  • 内容锁定功能和更新
  • 使用 WordPress 6.1 中的新 React 挂钩简化数据访问
  • 扩展查询循环块
  • WordPress 6.1 中的区块 API 更改
  • 块样式生成(样式引擎)
  • WordPress 6.1 中块编辑器首选项的更改
  • 每个模块的设计工具名册
  • WordPress 6.1 中的编辑器组件更新
  • WordPress 6.1 中增强的 TypeScript 支持
  • WordPress 6.1 的其他编辑器更改

主题

主题可以更好地控制样式元素、布局和导航,而经典主题也可以控制基于块的模板部分和theme.json在下面的开发说明中阅读所有这些内容。

  • 传统主题中基于块的“模板部分”
  • 块主题中的样式元素
  • 重构后在 6.1 中更新了编辑器布局支持
  • 内容锁定功能和更新
  • 在 WordPress 6.1 中引入“更新 URI”主题标头
  • WP 6.1 中的导航块回退行为

更新了theme.json的设置和样式

WordPress 6.1 中的新服务器端过滤器将允许连接到 theme.json 数据(有关更多信息,请参阅56467和54251)。

  • theme.json 数据的过滤器
  • WordPress 6.1 中的流体字体大小
  • 引入了填充、边距和块间隙的预设值
  • 在 theme.json 中引用样式值

REST API

REST API 对/search端点以及漂亮打印的 JSON 响应进行了很好的改进,可以将其添加为查询参数,也可以通过rest_json_encode_options filter进行控制。

WordPress 6.1 中的其他 REST API 改进

后台管理

WordPress 6.1 新增 WP_List_Table::get_views_links() 生成当前视图链接

登录和注册

使用 is_login() 函数检测当前页面是否为登录界面

媒体

在 5.8 中,我们欢迎对 WebP 图像格式的支持,当生成 WebP 格式并合并到 6.1 的核心(54097、54094和54086)时,我们感到非常兴奋。但是,此提交已在54226中恢复,建议将该功能集成可选功能插件中。

#54788中的更改允许在视频元素中使用 muted 属性,这解决了在查看页面时希望 autoPlay 看到的内容。

数据库

包含wpdb类的文件从wp-includes/wp-db.php 被重命名为 wp-includes/class-wpdb.php以符合编码标准。如果您一直直接包含此文件,请不要担心,已经创建了一个新的wp-db.php文件,然后会自动加载重命名的文件。在#56268中阅读更多内容。

其他开发者更新

如上所述,WordPress 6.1 带有大量新的钩子和功能,下面的文章对于主题和插件开发人员非常有用。

WordPress 6.1 的其他核心更改

更多更改

应用程序密码

允许超级管理员在他们不是其成员的网站上设置应用程序密码。#53224

自动保存

在编辑锁定时阻止自动保存覆盖更改。#55659

缓存 API

防止过多的 notoptions 键查找。#56639

字符集

在将重音字符转换为 remove_accents(). #35951

定时 API

  • 修改 _get_cron_array() 为始终返回一个数组。#53940
  • 将错误记录和挂钩添加到 wp-cron.php. #56048

编辑

  • 通用检查块编辑器状态的功能。#51819
  • 澄清 get_page_template() 不适用于块主题。#56394
  • 块样板:添加新的页脚类别 #56416

外部库

几个外部库已更新到最新版本。这些包括 PHPMailer、GetID3、Moment、Sodium Compat、jQuery、jQuery UI、MediaElement.js、Clipboard.js 和 Underscore

  • 在 Thickbox 库中添加对 WebP 图像的支持。#55786
  • 更新 PHPMailer 到 6.6.4 #55976 , # 56016 , #56413
  • 更新 6.1 的下划线库#56030
  • 更新 6.1 的 Moment 库#56031
  • 更新 6.1 的 jQuery UI 库#56239
  • 将 mediaelement.js 更新到版本 4.2.17 #56319
  • 将 jQuery 更新到版本 3.6.1 #56451
  • 将 Sodium Compat 更新到 1.19.0 #56564 , #56653
  • 将 GetID3 更新到版本 1.9.22 #56692

格式化

  • 在#24661中转换重音字符之前标准化为 Unicode NFC 编码 remove_accents()
  • 将核心中的所有 esc_url_raw() 调用替换为sanitize_url(). #55852
  • 允许 min()在内 联CSSmax()中使用、  minmax()、 和 clamp() 值。#55966
  • KSES:允许更多与布局相关的 CSS 属性。#56122
  • KSES:允许为 CSS 变量赋值。#56353

常规

  • 格式化:在 is_serialized(). #53299
  •  用常量PHP_VERSION替换 phpversion() 函数调用 。#55680
  • 块:删除重复使用 realpath() in  register_block_style_handle()。#56636
  • 块编辑器:删除块编辑器设置中的重复调用 file_get_contents() 。#56637
  • 常规:在调用realpath()后删除file_exists()检查 。#56654
  • 块:在 register_block_style_handle()中删除额外的 get_theme_file_path() 调用。#56666
  • 常规:确保 wp_rand() 在 $min 和 $max 值等于0时返回0 。#55194

I18N

I18N:介绍 WP_Textdomain_Registry 存储文本域及其语言目录路径。#39210

登录和注册

  • 网络注册中的必填字段。#54344
  • 将错误与输入字段明确关联。#54483

媒体

尊重 EXIF 轮换。#54937

网络和站点

  • 移动 global_terms_enabled() 到适当的最终目的地。#21734
  • 在 *_network_options 函数中使用元数据 API。#37181
  • 将网络的主站点 ID 存储在网络选项中。#55802

文章和文章类型

更正get_post_permalink()检查不存在的文章。#45329

脚本加载器

确保将块脚本排入队列,忽略 render_callback. #56470

分类

  • 标准化用于描述传递给内部操作和过滤器的参数的格式 wp_insert_term() 和 wp_update_term()。#55441
  • wp_list_categories() 中将 use_desc_for_title 默认设置为 false。#55530
  • 将字段描述与字段相关联。#55651

升级/安装

跟踪 WebP 和 AVIF 的 php 扩展和图像库支持。#48116

工具

存储未初始化小工具的默认选项。#54677