当我使用WP_QUERY时,默认查询会发生什么情况?

时间:2020-03-25 作者:serverpunk

我正在根据Underscores. 在我的archive.php 我想让循环中的第一篇帖子的风格与其他帖子不同,所以我正在运行一篇WP_Query 获取第一篇帖子,另一篇获取其余帖子。

我想知道的是,由于我自己处理查询,WordPress隐式运行的默认查询(即我通常使用的查询)会发生什么情况while ( havePosts() )? 显然,出于性能方面的原因,我不想运行任何不必要的查询,那么有什么方法可以阻止它吗?

我对pre_get_posts hook,但我不确定我将如何使用它,因为正如我所提到的,我不只是试图修改一个默认查询——我需要两个(除非有更好的方法)。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

WordPress在查看任何类型的存档时都会查询一组默认的帖子。因此,如果您按照所述运行自己的查询,最终将得到3个数据库查询,而不是1个。

您不应该按照描述的方式开发模板。标准WordPress模板应全部使用默认查询。您将作为第400人回来询问,如果您这样做,为什么分页不能正常工作,以及其他潜在问题。如果你想改变第一篇文章的风格,有很多方法可以做到这一点,而无需单独查询,从CSS技术到模板中的逻辑。如果你想完成一些具体的事情,我建议你在上面写一个新的问题。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post