1

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

2 回答 2

1

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

来自法典:

After looping through a separate query, this function restores the $post global 
to the current post in the main query.
于 2012-11-16T14:22:34.220 回答
0

您需要在每次查询后重置发布数据(就在 之后endwhile):

<?php wp_reset_postdata();?>
于 2012-11-16T14:18:51.350 回答