WordPress 6.3 是 WordPress 路线图第二阶段的最后一个重要版本。在第二阶段,开发工作主要集中在网站编辑器上,增加了其功能,并改进了界面和可用性。现在,网站创建者可以在同一个界面上设计布局和管理内容,无需从一个管理区跳转到另一个管理区,也无需编写一行代码。
更改所有查询的缓存组
WordPress 中很多的查询结果都会被缓存,比如所有主要的查询类 WP_Query,WP_Comment_Query 和 WP_Term_Query 等,从 6.3 开始,首先 WP_User_Query 的查询结果也会被缓存,然后在之前版本中,查询结果缓存与之相对应的对象的的缓存组(Cache Group)是相同的,比如文章查询数据将存储在 “posts” 缓存组中,从 6.3 开始这种方式将被改变。
6.3 将针对查询结果的缓存引进新的缓存组,使开发者在处理这些缓存组的时候有更大的控制权,底层核心功能现在允许开发者为缓存组指定过期时间,例如,可以设置一天的时长。如有需要,开发者还可以使用 wp_cache_flush_group()函数来清除特定的缓存组(如果他们的使用缓存服务已经实现支持它)。此外,此更改还允许开发者根据需要将缓存组指定为非持久性的。
新工具函数
WordPress 6.3 引入了一个新的工具函数 wp_cache_set_last_changed()用于更新缓存中的最后更新值,它是对在 WordPress 4.7 中添加的 wp_cache_get_last_changed() 函数的补充,核心代码中所有更新缓存最后更新值都会替换为对此新函数的调用。
此外还引入了一个相应的 action:wp_cache_set_last_changed ,该 action 提供了诸如缓存组、最新更新值和旧值等有用的信息,开发者可以利用它实现自定义的缓存失效策略。结合前面提到的新缓存组和 wp_cache_flush_group() 函数,就可以实现以编程方式清除整个缓存组
其他增强和修改
6.3 还更新了 _get_non_cached_ids() 函数,支持验证无效 IDs,确保输入的数组是唯一并且为整数。在以前的版本中,没有对输入进行验证,可能导致验证错误甚至 PHP 致命错误,现在,此函数仅支持传递整数数组,如果传递了错误的值,将触发_doing_in_wrong 函数生成消息以通知开发者。
在 5.5 引进的 wp_cache_get_multiple 在 6.3 将会应用到更多的地方,比如用于获取所有核心站点选项的 wp_load_core_site_options 函数中,或者 WP_Comment_Query 的 fill_descendants(填充子评论)操作中,只需要一次缓存请求就能获取所有数据。
这些更新提高了 WordPress 对缓存的利用效率,从而提高站点的响应速度和性能,特别是服务器已经安装了 Memcached 这类内存的情况下。