我想在WordPress博客上显示多个循环。分类如下:
我有4个循环来显示这些。我试图在每页显示这些数量的帖子,一旦显示,不要再在另一页上显示,因为我不想显示重复。
我的循环如下。我似乎正在重复,当我试图让他们删除重复时,我倾向于删除所有内容而不知道如何。
热门话题 - 第一轮
<?php
global $do_not_duplicate;
$do_not_duplicate = array();
$paged = max(1, get_query_var('paged'));
$my_query = new WP_Query('category_name=top-story&posts_per_page=1&paged='.$paged);
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate[] = $post->ID; ?>
// content
<?php endwhile; ?>
小故事 - 第二轮
<?php
$my_query = new WP_Query('category_name=small-story&posts_per_page=1&paged='.$paged);
while ($my_query->have_posts()) : $my_query->the_post();
if (in_array($post->ID, $do_not_duplicate)) continue;
$do_not_duplicate[] = $post->ID;
?>
// content
<?php endwhile; ?>
普通帖子(注意:该类别实际上称为正常) - 第3次循环
<?php $my_query = new WP_Query('category_name=normal&posts_per_page=1&paged='.$paged);
while ($my_query->have_posts()) : $my_query->the_post();
if (in_array($post->ID, $do_not_duplicate)) continue;
$do_not_duplicate[] = $post->ID; ?>
// content
<?php endwhile; ?>
Quickfill - 第4次循环
<?php
$int = 0;
$my_query = new WP_Query('category_name=quickfill&posts_per_page=2&paged='.$paged);
while ($my_query->have_posts()) : $my_query->the_post();
if (in_array($post->ID, $do_not_duplicate)) continue;
$do_not_duplicate[] = $post->ID;
if ($int==0) { ?>
<hr class="seperator" />
<div class="gr_bg_post">
<img src="<?php bloginfo('template_directory'); ?>/images/quickfill.png" />
<?php } ?>
<div class="fl">
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<?php the_content('<button type="button" class="read_more_green">Read More</button>'); ?>
</div>
<?php if ($int==1) { ?>
</div>
<?php } ?>
<?php $int++; ?>
<?php endwhile; ?>
最后一个循环 - 用于展示帖子的标准WordPress协议......(我认为这可能与我的副本有关)
<?php
$my_query = new WP_Query(array('post_not_in' => $do_not_duplicate));
if (have_posts()) : while ($my_query>have_posts()) : $my_query>the_post();
?>
// content
<?php endwhile; endif; ?>
我一直试图解决这个问题几天,我似乎无法阻止重复显示,或者显示正确的帖子。任何帮助非常赞赏!
答案 0 :(得分:0)
您在最后一个查询中缺少查询变量$my_query
$my_query = new WP_Query(array('post_not_in' => $do_not_duplicate));
if ($my_query->have_posts()) : while ($my_query>have_posts()) : $my_query>the_post();
// content
endwhile; endif;