0

WordPress ブログに表示したい複数のループがあります。カテゴリは次のとおりです。

  • トップストーリー (1 ページに 1 つ)
  • 小話 (1 ページに 1 つ)
  • 通常 (1 ページに 1 つ)
  • クイックフィル (1 ページに 2 つ)

これらを表示するためのループが 4 つあります。ページごとにこの量の投稿を表示しようとしていますが、表示されたら、重複を表示したくないので、別のページに再度表示しないでください.

私のループは次のとおりです。重複を取得しているようで、重複を削除しようとしているときに、方法がわからないまますべてを削除する傾向があります。

トップストーリー - 1回目のループ

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

小話 - 2回目のループ

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

クイックフィル - 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 に答える