我正在认真研究这两个钩子的代码,它们以相同的参数一个接一个地运行,我只是看不到任何有意义的区别。
仅理论上parse_query 将运行,而不是pre_get_posts, 如果WP_Query::parse_query() 我们将直接独立运行,但WordPress本身从来没有这样做过。也许有些插件会,但我不知道为什么会这样。就我所知,没有任何技术上的理由可以使用一个而不是另一个,但是pre_get_posts 官方和第三方提供的更新、更广泛的使用和更好的文档记录。我怀疑parse_query 有点退化。
我建议使用pre_get_posts. 使用您看到的任何代码parse_query 应按原样使用pre_get_posts.