为了缓存加速,get_pages 函数内部改用 WP_Query 实现
WordPress 6.3 将修复一个 13 年之久的问题,get_pages()
函数的内部使用 WP_Query
来实现。
这是因为 WP_Query
已经实现了缓存,那么 get_pages()
函数内部使用 WP_Query
来实现,就可以把查询数据库和处理缓存的负担都交给 WP_Query
,从而可以显著降低了 get_pages()
函数的复杂性。
这次更新不仅消除了冗余的代码,并且还确保了在调用 get_pages()
函数时候,所有在 WP_Query
中运行的 filter 现在也能同时被应用,比如之前用户用于自定义 WP_Query
的行为的 posts_pre_query
和 posts_results
等这些过滤器去,现在也可以应用到 get_pages()
函数,从其他数据源(缓存或者其他数据库,比如 elastic search)获取查询的数据这类做法都会从这一改变中获益。
此外,6.3 还添加了一个名为 get_pages_query_args
的过滤器,这个过滤器使开发者能够修改传递给 WP_Query
的参数,同时保持与原始参数兼容。