我在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; ?>
答案 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中。