WordPress多循环混乱

时间:2013-05-13 02:33:32

标签: wordpress

我想在WordPress博客上显示多个循环。分类如下:

  • 头条新闻(每页1页)
  • 小故事(每页1张)
  • 正常(每页1个)
  • Quickfill(每页2个)

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

我一直试图解决这个问题几天,我似乎无法阻止重复显示,或者显示正确的帖子。任何帮助非常赞赏!

1 个答案:

答案 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;