WordPress 6.1 性能领域指南

WordPress 6.1 引入了许多重要的性能改进,这些改进将对各个方面产生影响。最显着的改进是在缓存WP_QueryREST API方面完成的。

对 WP_Query 的改进

缓存 WP_Query 中的数据库查询是许多开发人员一直想要的功能,最终在 WordPress 6.1 中实现了梦想。一些新功能将确保用户缓存和链接对象的菜单项现在已准备好,而get_page_by_title功能将从现在开始使用WP_Query并充分利用所有这些改进。

 

对 REST API 的改进

在单个查询中启动缓存将通过几个新的辅助函数显着改进 Posts 控制器,但这还不是全部。用户和评论控制器将以类似的方式受益,而分类和帖子类型控制器现在prepare_links仅在需要时使用。这种对prepare_links方法的控制也可用于自定义控制器。

 

站点运行状况改进

WordPress 6.1 将有两个新的站点健康检查——持久对象缓存和页面缓存,以及一些新的过滤器。在专门的开发说明中了解更多信息。

 

多站点改进

在 WordPress 6.1 中,网络选项功能已更新为与其他元数据类型保持一致,register_meta添加了对单个查询中的主要缓存网络选项、网络选项中的字符串主站点 ID 等的支持。

 

引导/加载

为了更好地控制缓存行为、预加载资产和有条件地执行重定向,动作钩子的顺序略有改变。

 

缓存API的改进

缓存 API 的改进带来了在WP_Object_Cache方法中验证缓存键、按组删除缓存并使许多私有缓存启动功能公开,因此可用于插件和主题。

有效的缓存键必须是整数或非空字符串。这将防止函数中的静默失败wp_cache_*(),通过快速类型检查并_doing_it_wrong()在字符串为空、false或时添加消息来完成null。此外,签入update_user_caches() 并 clean_user_cache()确保电子邮件在缓存或从缓存中删除之前不为空。在#56198中阅读更多内容。

各种对象类型的几个私有缓存启动函数现在是公共的,鼓励插件和主题作者使用这些函数通过减少数据库查询的数量来提高他们的代码性能。这些功能是:

  • _prime_post_caches()
  • _prime_term_caches()
  • _prime_comment_caches()
  • _prime_network_caches()
  • _prime_site_caches()
  • _get_non_cached_ids()

 

<strong>wp_cache_flush_group()</strong>功能介绍

如果你想删除缓存的项目,wp_cache_delete你必须指定项目的 ID,或者你必须用 . 刷新整个缓存wp_cache_flush。WordPress 6.1 引入了一个新的可插入函数 wp_cache_flush_group,如果对象缓存实现支持它,它会删除组中的所有缓存项。

<strong>wp_cache_supports()</strong>功能介绍

开发人员现在可以检测他们当前的对象缓存实现是否支持按组刷新, wp_cache_supports( $feature ) 如果支持该功能,则调用 which 返回 true。第三方对象缓存插件可以声明一个 wp_cache_supports() 函数并正确列出其支持的特性:

  • add_multiple
  • set_multiple
  • get_multiple
  • delete_multiple
  • flush_runtime
  • flush_group

注意:该 wp_cache_supports() 功能替换并取代 #4476wp_cache_supports_group_flush() 中添加的功能。

在#56605中阅读更多内容。

媒体改进

WordPress 6.1 将添加decoding="async" 图像属性以及新wp_img_tag_add_decoding_attr()功能和wp_img_tag_add_decoding_attr 过滤器在#53232中阅读更多内容。

查询附件 AJAX 端点现在缓存父帖子对象。在#56037中阅读更多内容。

WP_Media_List_Table 类将调用update_post_parent_caches 函数以便在单个数据库请求中初始化父缓存。在#56036中阅读更多内容。

添加缓存以 wp_count_attachments()更好地与 wp_count_posts()在#55227中阅读更多内容。

检索空帖子集合时避免重复查询。在#55677中阅读更多内容。

帖子、帖子类型改进

在 WordPress 6.1中,WP_Posts_List_Table 类将调用update_post_author_caches 函数,以便在单个数据库请求中初始化帖子作者缓存。在#56100中阅读更多内容。

一个新的过滤器post_class_taxonomies将允许开发人员减少生成类术语类的分类法的数量。在#37114中阅读更多内容。

运行持久对象缓存的站点将在 _find_post_by_old_slug 和 _find_post_by_old_date 函数中缓存数据库查询的结果。在#36723中阅读更多内容。

编辑

额外的构建任务copy:block-json会将所有block.json文件转换并存储在一个文件中,blocks-json.php这将防止所有这些在每个页面加载的每个块中发生。

持有这些更改的跟踪票:

数据库

标识符(例如表和字段名称)使用 %i 占位符进行转义,这将防止 SQL 注入漏洞并提供小的性能改进。

持有这些更改的跟踪票:

其他性能改进

行政

WP_List_Table::get_column_info() 通过将主列添加到缓存的标头值来提高性能 。

定时 API

在 6.1 中,wp-cron 对于 LiteSpeed LSAPI将是非阻塞的。

分类

在取消注册分类法和调整以处理自定义分类法的默认术语时保留默认术语选项(#54472)。

主题

两个新的操作是包装加载模板文件的过程 ( load_template) –wp_before_load_templatewp_after_load_template

脚本加载器

新过滤器支持使用wp_preload_resources进行资源预加载。rel='preload'

用户

WP_User_Query 中的主要用户数据。

订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x