在WP_QUERY中破解‘POSTS_PER_PAGE’

时间:2015-12-28 作者:N00b

我有一个搜索表单、地图和结果部分。

使用不同的参数提交搜索表单,地图显示与参数匹配的所有结果,结果部分显示与参数匹配的前15个结果(按某种方式排序),我目前有2个不同的查询,只有一个不同:

  • posts_per_page 对于map is-1
  • posts_per_page 对于结果是15
  • 我可以不使用posts_per_page -1 在不知道伯爵的情况下?此if用于WP_Query offset 无法使用的参数,如果posts_per_page-1.
1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

以下是一些选项:

保留AJAX,退出posts_per_page => 15 查询并保留-1 查询然后,在地图循环之后(或之前),可以使用计数器限制显示的项目数量:

if( $map->have_posts() ) : $counter = 1;
    while( $map->have_posts() && $counter <= 15 ) :
  ?>
    ...
  <?php
    $counter++;
    endwhile;
endif;
然后您可以使用$map->rewind_posts() 分别地现在,在AJAX部分,您将重新查询结果,但由于在页面加载期间不会发生这种情况,您将看到速度有所提高。那你就offset => 15posts_per_page => 15 因此,它可以更快地查询、返回结果并附加或替换结果部分中当前的内容。

在这种情况下,您需要使用rewind_posts() 前面提到过。你几乎可以循环查看所有的结果<div>\'s/15(我建议使用modulus 来测试这一点。然后,当用户单击“next”以显示下一个div时,可以使用jQuery进行处理,该div的集合为15。由于您只使用了1个查询,因此页面速度将基于循环,这将非常快。

相关推荐

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

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