我想在页面上显示一些帖子,所以当我使用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; ?>
答案 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();?>