0

私はcategory.phpに3つのループを持っています.1つ目は最新の単一の投稿を引っ張っています.2番目の2つのループは列に表示するために投稿を奇数と偶数にフィルタリングしています.

最初の投稿が2番目のループで複製されたことを除けば、すべてが完全に機能しています。

重複した投稿を停止するために知っているすべての方法を試しましたが、これに行き詰まっています。

ループ 1:

        <?php $args = array( 'posts_per_page' => 1, 'paged' => 1, ); global $wp_query; $duplicate = 0; $the_query = new WP_Query( array_merge( $wp_query->query, $args )  ); while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

    <?php endwhile; ?>

ループ 2:

        <?php if (have_posts()) : while(have_posts()) : $i++; if(($i % 2) !== 0) : $duplicate = 0; $wp_query->next_post(); else : the_post(); if( $post->ID == $do_not_duplicate ) continue; ?>

    <?php endif; endwhile; else: ?>
    <?php endif; ?>

ループ 3:

        <?php $i = 0; rewind_posts(); ?>
    <?php if (have_posts()) : while(have_posts()) : $i++; if(($i % 2) == 0) : $duplicate = 0; $wp_query->next_post(); else : the_post(); if( $post->ID == $do_not_duplicate ) continue; ?>

    <?php endif; endwhile; else: ?>
    <?php endif; ?>
4

2 に答える 2

0

ループ 1 の最後に次を追加します。

wp_reset_query();

次に、ループ 1 の投稿の $post->ID も $do_not_duplicate に含まれていることを確認します。

于 2012-08-24T18:34:28.977 に答える
0

ループクエリをリセットしますwp_reset_query();

元。

<?php
query_posts( 'posts_per_page=5' );
if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        ?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
    endwhile;
endif;
wp_reset_query();
?> 
于 2012-08-24T15:38:14.177 に答える