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; ?>
私は数日間これを理解しようとしてきましたが、重複の表示を停止したり、正しい投稿を表示したりすることができないようです. どんな助けでも大歓迎です!