Wordpress类别模板上的多个循环重复帖子。

时间:2012-08-24 14:59:56

标签: wordpress post duplicates

我在category.php上有三个循环,第一个是拉最近的单个帖子,后两个循环是将帖子过滤成奇数和偶数顺序以显示在列中。

除了第二个循环中重复的第一个帖子之外,所有人都完美地工作。

我已经尝试了所有我知道的方法来阻止重复的帖子,但我坚持这个。

循环一:

        <?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; ?>

循环二:

        <?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; ?>

循环三:

        <?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; ?>

2 个答案:

答案 0 :(得分: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();
?> 

答案 1 :(得分:0)

在循环1的末尾添加以下内容。

wp_reset_query();

然后确保循环1中帖子的$ post-&gt; ID也包含在$ do_not_duplicate中。