0

我在 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; ?>
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 回答