在重构代码库时,我注意到有两个钩子用于修改主查询。
parse_query
pre_get_posts
使用的代码parse_query
基于an article on filtering admin listings based on a custom fields.
在重构代码库时,我注意到有两个钩子用于修改主查询。
parse_query
pre_get_posts
使用的代码parse_query
基于an article on filtering admin listings based on a custom fields.
我正在认真研究这两个钩子的代码,它们以相同的参数一个接一个地运行,我只是看不到任何有意义的区别。
仅理论上parse_query
将运行,而不是pre_get_posts
, 如果WP_Query::parse_query()
我们将直接独立运行,但WordPress本身从来没有这样做过。也许有些插件会,但我不知道为什么会这样。就我所知,没有任何技术上的理由可以使用一个而不是另一个,但是pre_get_posts
官方和第三方提供的更新、更广泛的使用和更好的文档记录。我怀疑parse_query
有点退化。
我建议使用pre_get_posts
. 使用您看到的任何代码parse_query
应按原样使用pre_get_posts
.
我目前正在使用woocommerce主题,Hotel(https://woocommerce.com/products/hotel/).我最近刚刚创建了一个主页和一个博客页面,其解释方式如下:https://www.wpbeginner.com/wp-tutorials/how-to-create-a-separate-page-for-blog-posts-in-wordpress/现在我想做的是:创建一个带有固定元素的主页,这些元素永远不会改变(如照片),然后添加一些动态元素(如博客中的帖子)……假设