如何在页面中使用wp_query三次

时间:2012-11-16 14:16:23

标签: php wordpress

我想在页面上显示一些帖子,所以当我使用wp_query()作为以下内容时,下一个和最后一个不输出任何内容,为什么?

<?php
$my_query = new WP_Query('showposts=1');
while ($my_query->have_posts()) : $my_query->the_post();
?>
<li>.....</li>
<?php endwhile; ?>

<?php
$query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
while ($query->have_posts()) : $query->the_post();
?>
<li>.....</li>
<?php endwhile; ?>

<?php
$query = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => '1' ) );
while ($query->have_posts()) : $query->the_post();
?>
<li>.....</li>
<?php endwhile; ?>

2 个答案:

答案 0 :(得分:1)

因为你经历了整个循环并且没有留下任何帖子。您需要执行wp_reset_postdata()

来自codex:

After looping through a separate query, this function restores the $post global 
to the current post in the main query.

答案 1 :(得分:0)

您需要在每次查询后(endwhile之后)重置帖子数据:

<?php wp_reset_postdata();?>