0

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

  • 头条新闻(每页 1 个)
  • 小故事(每页 1 个)
  • 普通(每页 1 个)
  • 快速填充(每页 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; ?>

普通帖子(注意:该类别实际上称为普通) - 3rd loop

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

快速填充 - 第 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; ?>

几天来,我一直在尝试解决这个问题,但我似乎无法停止重复显示,或者显示正确的帖子。非常感谢任何帮助!

4

1 回答 1

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;
于 2014-03-13T21:22:49.260 回答