0

ホームページで複数のループを使用したい。最初に特定のカテゴリの投稿を表示し、次に上記のカテゴリを含むすべての投稿を表示したいと考えています。しかし、query_posts を使用せずに 2 番目のループを使用すると、前のループの投稿が除外されます。

例えば:

<div class="special_category" >
    <?php query_posts('category_name=special_cat&posts_per_page=10'); ?>
        <?php while (have_posts()) : the_post(); ?>
            <!-- will get special_cat posts -->
        <?php endwhile;?>
</div>

<div class="latest_posts">
        <!-- as i want do display all posts, so I don't use query_posts. -->
        <?php while (have_posts()) : the_post(); ?>
            <!-- this will exclude the posts of above special_cat -->
        <?php endwhile;?>
</div>

2 番目のループで (引数を渡さなくても) query_string を使用すると、投稿が含まれます。

<div class="latest_posts">
        <!-- i used query_posts without any arguments -->
        <?php query_posts(''); ?>
        <?php while (have_posts()) : the_post(); ?>
            <!-- now this will get all posts -->
        <?php endwhile;?>
</div>

だから私の質問は、それはそのように機能することを意図しているのかということです。上記のループの投稿を除外するか、何か間違っていますか? query_posts を使用しないとすべての投稿を取得できないのはなぜですか? ありがとう。

4

2 に答える 2

1

最初のクエリは、リセットするまで 2 番目のループに影響します

<?php wp_reset_query(); ?> 最初のループの後に追加

詳細はこちらhttp://codex.wordpress.org/Function_Reference/wp_reset_query

于 2012-04-23T11:25:31.913 に答える
0

複数の投稿ループを使用する場合は、wp_queryを使用する必要があります。
そうすれば、クエリをリセットする必要もありません。

于 2012-04-23T12:42:31.623 に答える