WordPress 6.8新功能:安全升级、性能提升、编辑器增强等!

WordPress 6.8 将于 2025 年 4 月 15 日发布。下一个版本不会引入太多新功能;相反,它主要侧重于完善现有功能。

新版本带来了编辑器和可用性方面的改进,例如增加了在块编辑器中管理数据视图的更简便选项,以及在查询循环中忽略固定文章的功能;设计和主题方面的改进,例如改进了样式表;性能和安全性方面的改进,引入了推测加载和用于密码散列的“bcrypt”。

这些新增功能旨在改善用户体验,尤其是使用经典主题的用户,并提高网站性能。

编辑器改进

WordPress 6.8 带来了多项更新,增强了内容创建和管理体验。从新的预览选项到数据视图的改进,这些更新将简化“文章”和“网站编辑器”中的工作流程。

1. 在预览下拉菜单中切换显示模板

在“文章编辑器”顶部工具栏的预览下拉菜单中新增了 Show template 切换按钮。

编辑器顶部边栏添加了“显示模板”切换按钮

以前,您只能在文章侧边栏中访问模板选项。虽然这是一个重复,但也是一个值得注意的改进,因为将该选项放在工具栏下拉菜单中,可以更直接、更快速地在内容和模板视图之间切换。

在 WordPress 中启用显示模板选项

2. 改进的数据视图

数据视图是网站编辑器中的一个强大工具,它首次在 WordPress 6.5 中引入,允许用户以有组织的方式查看和管理页面、模板、模板部分和模式。

随着 WordPress 6.8 的发布,数据视图将继续发展,在网站编辑器中提供更直观、灵活和高效的编辑体验。重点是提高可用性和增加自定义选项。

页面视图可以自定义更多属性,包括预览、Slug、父节点、讨论、模板和密码。预览还可用于模式和模板。

WordPress 6.8 中的页面视图

WordPress 6.8 还为表格布局引入了新的密度控制,允许用户调整每一行所占的空间。通过舒适、平衡和紧凑三个选项,用户可以根据自己的喜好自定义显示方式,使管理体验更加多样化。

WordPress 6.8 在表格视图中引入了新的 Density 控件

新的和改进的区块

WordPress 6.8 引入了一个全新的区块,并对现有区块进行了多项更新。

1. 新的总查询区块

新的总查询区块显示与查询相关的信息,如查询结果总数或当前显示的结果范围。

WordPress 6.8 中的新总查询区块

您可以在查询循环中添加新区块,以显示分页结果中的结果数或范围。

总查询区块中的结果范围

2. 查询循环区块的更新

在 WordPress 6.8 之前,“查询”区块提供的选项数量有限,包括

  • 包含– 在文章列表中预置置顶文章
  • 排除– 完全排除置顶文章
  • –仅包括置顶文章

这组选项中缺少忽略置顶文章的功能,即把它们视为普通文章。WP_Query 已经支持该选项(ignore_sticky_posts => true),但在区块侧边栏中却没有该选项。

查询循环的忽略置顶文章选项

WordPress 6.8 引入了 “忽略”置顶文章状态的选项。这意味着开发人员和用户现在可以防止置顶文章自动出现在结果集的顶部,使它们的位置与查询固有的排序逻辑保持一致。

这一更新增强了WordPress核心查询行为的灵活性和一致性,使查询块在块编辑器中的内容管理方面更具通用性。

查询循环区块的另一项更新是将点击块工具栏中的替换按钮时出现的选择样板模态替换为下拉按钮。该按钮现在显示“更改设计”。

查询循环区块新增“更改设计”下拉菜单

3. 从图像区块工具栏将图像设置为特色图像

新增一个选项,允许您从图块工具栏选项下拉菜单中将图片设置为特色图片。如果文章已经设置了特色图片,用户也可以通过区块工具栏进行更改。

从区块工具栏下拉菜单中将图片设置为特色图片

4. 导航区块的更新

导航区块的几处小改进提高了其可用性和整体功能。

  • 导航区块现在会在导航文本旁边显示菜单名称(PR#68466 )。
  • 导航区块的颜色选择器中新增了“清除”选项(PR#68454)
  • 导航链接和子菜单区块中允许使用所有非交互式格式(PR#67585)

有关 WordPress 6.8 中导航区块改进的更全面列表,请查看此开发说明。

在导航链接和子菜单区块中提供非交互式格式

设计和主题改进

WordPress 6.8 对网站编辑体验进行了重大改进。全局样式界面经过了改进,访问和实时定制更加方便。同时,“样式手册”还将其功能扩展到了经典主题,缩小了现代和传统 WordPress 工作流程之间的差距。

1. 网站编辑器侧边栏上的全局样式

从 6.8 版开始,全局样式界面现在可以从网站编辑器的主菜单中访问。单击“样式”菜单项可弹出“全局样式”面板,其中包含所有排版、颜色、背景、阴影和布局选项。

WordPress 6.8 中网站编辑器主菜单中的全局样式面板

点击眼睛图标可显示样式手册,其中实时显示样式设置的更改。点击全局样式面板上的某个特定部分后,就会立即跳转到样式手册的相应部分。

在 WordPress 6.8 中,您可以更轻松、更快速地浏览样式表

这一更改将使您更方便、更快捷地定制网站样式,从而显著改善设计工作流程。

请比较 WordPress 6.7 和 6.8 中的样式界面,以找出不同之处。

WordPress 6.7 中的样式面板

WordPress 6.8 也为经典主题带来了这一改进。

2. 经典主题中添加了样式表

自 WordPress 6.2 起就适用于块主题。在 WordPress 6.8 中,通过 add_theme_support( 'editor-styles' ) 支持编辑器样式或拥有 theme.json 文件的经典主题也可以使用样式表。

该功能在 Gutenberg 19.9 中首次推出。如果您不使用 Gutenberg,从 WordPress 6.8 开始,您可以通过“外观”>“设计”>样式”访问经典主题中的“全局样式”和 “样式书”。

下面的图片显示了 WordPress 6.7 中的“样式”部分与 WordPress 6.8 中的“样式书”(安装了二〇二〇主题)之间的区别。

WordPress 6.8 中经典主题中的样式表

为了给网站编辑器中的“样式手册”腾出空间,样板已被移至“设计”屏幕的一个单独部分。

以下图片显示了 WordPress 6.8 中经典主题 Twenty Twenty-One 样式手册中的排版和颜色预览。

使用二〇二一主题的样式表中的排版预览

二〇二一主题样式手册中的颜色预览

经典主题样式簿的推出标志着向更大程度地整合区块样式编辑功能迈出了一步。

性能和安全性

WordPress 6.8 在性能和安全性方面有了重大改进。有了新的猜测规则 API,WordPress 页面可以通过预测用户操作来加快加载速度。同时,改用 bcrypt 算法进行密码保护使系统更安全地抵御网络攻击。让我们深入了解一下。

1. WordPress 6.8中的推测加载

推测加载是一种网站性能优化技术,它允许在用户访问页面或资源之前对其进行预取或预呈现,从而缩短加载时间并改善用户体验。

推测加载基于推测规则 API,这是一个实验性 API,允许开发人员通过 JSON 定义的接口,根据预期的用户交互,指定预取或预渲染 URL 的规则。

目前支持 Speculation Rules API 的浏览器数量有限,主要是基于 Chromium 121+ 的浏览器,如较新版本的 Chrome、Edge 和 Opera。

如果网站使用了推测加载规则,目前不支持推测规则 API 的浏览器(Firefox 和 Safari)的用户不会受到惩罚。它们只是无法受益于 API 带来的性能提升。

推测规则 API 浏览器支持(来源:caniuse)

预取和预渲染之间有一些重要的区别:

  • 预取 元素或 Speculation-Rules 标头中的 prefetch 规则会强制浏览器下载指定页面的响应体,但不会渲染这些页面。预取不包括加载子资源和执行 JavaScript。结果保存在指定的缓存中,当用户离开页面时,缓存就会清空。如果用户在未访问预取页面的情况下离开,则会造成一定的资源浪费,但浪费程度仍低于预渲染。
  • 预渲染 元素或 Speculation-Rules 标头中的 Speculation-Rules 规则会强制浏览器获取、渲染并将内容加载到一个不可见的标签页中,并存储在每个文档的内存缓存中。使用预渲染时,会加载所有子资源,并执行所有 JavaScript 代码。结果保存在专用缓存中,当用户离开页面时,缓存会清空,但用户导航到的页面除外。预渲染在性能方面有相当大的优势,但会占用内存和网络带宽,并可能耗费大量资源。

投机规则可以放在内嵌的   元素中,也可以放在由 Speculation-Rules HTTP 标头引用的外部文件中。下面是一个在 script 标签中使用的示例:

{
"prefetch": [
{
"source": "list",
"urls": ["firstpage.html", "secondpage.html"]
}
]
}

在 6.8 之前,WordPress 用户如果想在自己的 WordPress 网站上添加推测加载,可以使用 WordPress 性能团队提供的 Speculative Loading 插件。该插件通过自动预加载或预渲染 WordPress 前端 URL,提供了“推测规则 API”的性能优势。

Speculative Loading 插件默认设置

随着 6.8 版本的发布,WordPress 核心新增了两个函数、一个过滤器和一个操作:

新的 wp_get_speculation_rules_configuration() 函数会返回当前的推测规则配置(modeprefetch/prerender– 和 eagernessconservative/moderate/eager )。默认值为 prefetch 和 conservative,以尽量减少资源消耗和防止不良影响。根据开发说明,“这与 Cloudflare 在其推测性加载功能中使用的配置一致,它最大限度地减少了在没有后续导航到 URL 的情况下进行任何推测性加载的机会”。

以下代码是如何使用 wp_get_speculation_rules_configuration() 函数的示例,您可以将该函数添加到插件或活动主题的函数文件中:

add_action( 'wp_footer', function() {
$config = wp_get_speculation_rules_configuration();
echo '
';
print_r( $config );
echo '

';
} );

WordPress 的核心实现在所有网站的前端启用了 Speculative loading 功能,但用户登录或禁用固定链接时除外

我们在 WordPress 6.8 中测试了推测加载,结果如下:

{
"prefetch": [
{
"source": "document",
"where": {
"and": [
{
"href_matches": "\/*"
},
{
"not": {
"href_matches": [
"\/wp-*.php",
"\/wp-admin\/*",
"\/wp-content\/uploads\/*",
"\/wp-content\/*",
"\/wp-content\/plugins\/*",
"\/wp-content\/themes\/twentytwentyfive\/*",
"\/*\\?(.+)"
]
}
},
{
"not": {
"selector_matches": "a[rel~=\"nofollow\"]"
}
},
{
"not": {
"selector_matches": ".no-prefetch, .no-prefetch a"
}
}
]
},
"eagerness": "conservative"
}
]
}

wp_get_speculation_rules() 函数会根据配置生成整个“推测规则”的 JSON 对象。

您可以在下面的示例中使用该函数:

add_action( 'wp_footer', function() {
if ( function_exists( 'wp_get_speculation_rules' ) ) {
$rules = wp_get_speculation_rules();
if ( ! empty( $rules ) ) {
echo '

Speculation rules:

'; echo '
';
echo esc_html( json_encode( $rules, JSON_PRETTY_PRINT ) );
echo '

';
} else {
echo '

Speculation rules are empty or invalid.

';
}
} else {
echo '

wp_get_speculation_rules() not available.

';
}
});

您可以使用新的 wp_speculation_rules_configuration 过滤器来更改默认配置,例如将“eagerness”改为 moderate 或 eager ,或强制执行特定行为。

你可以使用 wp_speculation_rules_configuration 过滤器,通过添加一个 URL 列表,用source=list 代替 document,只对相关文章进行预渲染,如下例所示:

add_filter('wp_speculation_rules_configuration', function( $config ) {
$config['mode'] = 'prerender';
$config['eagerness'] = 'eager';
$config['urls'] = [
'source' => 'list',
'urls' => [
home_url('/page-1/'),
home_url('/page-2/')
]
];
return $config;
}

通过 wp_load_speculation_rules 动作,您可以在主核心推测规则之外添加自定义规则,而通过 wp_speculation_rules_href_exclude_paths 过滤器,您可以将其他路径排除在推测加载之外。

根据开发说明,启用推测加载后,网站的最大内容页面(LCP)中位数提高了 1.9%。考虑到这只是一次添加的结果,这是一个值得注意的结果。

有关推测加载的深入分析,请查看我们的深入教程 。关于 WordPress 6.8 中投机加载的全部细节和使用示例,请参见跟踪工单 #62503和官方开发说明。另请参阅 Felix Arntz 撰写的《WordPress中的推测加载》。

2. WordPress 6.8中用于密码散列的Bcrypt

WordPress 6.8 将改变用于保护用户密码的算法。WordPress 目前使用的是 phpass,它在现代安全性方面并不被认为是最好的。WordPress 6.8 将改用更安全的 bcrypt 加密算法。

主要区别在于 bcrypt 需要更多的时间和资源来破解,因此网络攻击的效果较差。

此外,应用程序密码、用户密码重置密钥、个人数据请求密钥和恢复模式密钥将从 phpass 切换到更安全、更快速的 BLAKE2b 散列算法。

实施这一更改无需用户操作:

用户在更新后首次登录时,或下次更改密码时,其密码将自动使用 bcrypt 重新散列,并重新保存在数据库中。应用程序密码和安全密钥不会自动重写,但如果现有哈希值是在 WordPress 6.8 之前生成并在过期前使用的,则将继续有效。

文章密码目前将继续使用 phpass,但将来可能会改变。

如果您想更近距离地了解 WordPress 6.8 采用 bcrypt 的情况,并为开发人员提供更深入的分析,请不要错过 John Blackbourn 的开发说明。

针对开发人员的更新

WordPress 6.8 还为开发人员带来了有趣的更新。这些更新使创建和管理区块变得更容易,改善了用户界面并提高了网站性能。以下是新功能的详细介绍,以及如何帮助简化开发工作流程。

1. WordPress 6.8 中的多区块类型注册

WordPress 6.8 通过新函数 wp_register_block_types_from_metadata_collection() 引入了更高效的区块类型注册。该函数允许开发人员同时注册多个区块类型,从而提高性能并简化区块开发。

它基于 WordPress 6.7 中引入的区块类型注册 API,尤其适用于通过单次调用注册多个区块类型的插件,与单独注册每个区块相比,它提供了一种更高效、更简单的区块注册方法。

它的主要优点是,你无需为你在插件中注册的每个区块类型重复调用 register_block_type()。现在,您只需创建一个区块类型文件夹,就可以在现有插件中添加新的区块类型,而且无需在插件的 PHP 代码库中注册区块类型,因为所有区块类型都会被自动识别和注册。

要使用这一强大功能,您需要为所有区块类型创建一个清单。清单是一个 PHP 文件,包含来自项目中所有 block.json 文件的区块元数据,您可以使用@wordpress/scripts NPM 包中的 build-blocks-manifest 命令生成清单。

生成清单后,只需调用一次函数,就能注册所有区块类型:

wp_register_block_types_from_metadata_collection(
plugin_dir_path( __FILE__ ) . 'dist',
plugin_dir_path( __FILE__ ) . 'dist/blocks-manifest.php'
);

如需进一步了解新的 wp_register_block_types_from_metadata_collection() 函数,请查看开发说明和 build-block-manifest命令文档。

2. 6.8版本用户界面组件的若干更新

WordPress 6.8 对区块编辑器中的用户界面组件引入了多项更改,并进行了多项弃用和更新。一些值得注意的变化包括

  • Navigation 组件已被弃用Navigation 组件(及其所有子组件)已被弃用,并计划在 WordPress 7.1 中硬性删除。Navigator 组件将取而代之。
  • Navigator 组件已稳定:来自 __experimentalUseNavigator 钩子的 __experimentalNavigatorToParentButton 和 goToParent 方法已被弃用,取而代之的是__experimentalNavigatorBackButtongoBack
  • RadioGroup 组件已被弃用RadioGroup 组件已被弃用。您可以使用 RadioControlToggleGroupControl 代替。

有关 6.8 中用户界面组件变更的完整列表,请参阅开发说明。

3. 交互式API更新

交互性 API 得到了多项改进。在WordPress 6.8之前,当有人与页面进行交互时,所有相关任务都会同时进行,如果交互时间超过50毫秒之类,速度就会变慢。为了解决这个问题,WordPress 6.8 引入了异步处理程序,允许默认以异步方式运行这些任务。这将有助于改善 INP(Interaction to Next Paint),它是衡量网站对用户交互响应速度的一个指标。

这一变更正在为 WordPress 6.8 做准备,但尚未完全实施。开发人员需要遵循新的最佳实践,以避免警告并跟上这些改进(如使用异步方法)。引入的新功能是向更快、更可靠的交互式 API 迈出的中间一步。

如需更深入地了解新的交互式 API 最佳实践,请查看 Felix Arntz 的开发说明。

4. 针对开发人员的性能警告

useSelect 钩子有助于在块编辑器中获取和管理数据,但如果使用不慎,可能会降低网站的运行速度。

从 WordPress 6.8 开始,如果 useSelect 被调用得太频繁或效率太低,在启用 SCRIPT_DEBUG 后,开发者控制台中将出现一个新的警告。更具体地说,如果每次组件呈现(更新)时都触发 useSelect 而没有进行适当的优化,就会显示警告。

新警告可帮助开发人员识别可能存在的性能瓶颈。更多详情请参见开发说明 。

WordPress 6.8 中的区块插入器概述

小结

WordPress 6.8 的重点是完善现有功能和提高性能。主要增强功能包括编辑器可用性的改进、设计升级、全局样式界面的改进以及对经典主题的样式书支持。它还通过“推测规则 API”的推测加载功能提高了性能,同时使用 bcrypt 密码散列加强了安全性。

但这还不是全部。有关 WordPress 6.8 的改进和新增功能的更全面列表,请查看 WordPress 官方博客上的 WordPress 6.8 Field Guide 和面向开发者的其他变更。

现在轮到您了。您安装 WordPress 6.8 了吗?您的第一印象如何?欢迎在下面的评论区分享您的想法。

© 版权声明
THE END
喜欢就支持一下吧
点赞20 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容