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 に答える