Mai multe bucle pe aceeași pagină, fără conținut duplicat
Încerc să creez o pagină cu mai multe bucle, am nevoie ca fiecare buclă să afișeze un număr predefinit de articole din aceeași categorie (fiecare buclă afișează X număr de articole din Categoria CATS). Dar am nevoie ca a doua buclă, a treia buclă și așa mai departe să afișeze articolele de unde s-a oprit ultima buclă, fără a duplica conținutul (exemplu: bucla 1 de la articolul 1 la 5, bucla 2 de la articolul 6 la 10, bucla 3 de la articolul 11 la 15 etc.). Iată ce am încercat până acum (am încercat și codul din WordPress Codex, dar nimic nu pare să funcționeze)
Mă puteți ajuta?
iată codul meu până acum:
<?php if (have_posts()) : ?>
<?php $mosaics = new WP_Query('category_name=mosaics&posts_per_page=5'); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php if( $post->ID == $do_not_duplicate ) continue; ?>
<?php echo get_the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<br />
<?php if (have_posts()) : ?>
<?php $mosaics = new WP_Query('category_name=mosaics&posts_per_page=4'); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php if( $post->ID == $do_not_duplicate ) continue; ?>
<?php echo get_the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<br />
<?php if (have_posts()) : ?>
<?php $mosaics = new WP_Query('category_name=mosaics&posts_per_page=3'); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php if( $post->ID == $do_not_duplicate ) continue; ?>
<?php echo get_the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<br />
<?php if (have_posts()) : ?>
<?php $mosaics = new WP_Query('category_name=mosaics&posts_per_page=2'); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php if( $post->ID == $do_not_duplicate ) continue; ?>
<?php echo get_the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
este important să citiți acest capitol din Codex până la final, deoarece sugestiile esențiale se află după acest titlu 'Notă pentru Postări Multiple în Prima Categorie';
cod repetitiv și plictisitor:
<?php $do_not_duplicate = array(); ?>
<?php $mosaics = new WP_Query('category_name=mosaics&posts_per_page=5'); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php $do_not_duplicate[] = $post->ID; ?>
<?php echo get_the_content(); ?>
<?php endwhile; wp_reset_postdata(); ?>
<br />
<?php $mosaics = new WP_Query( array( 'category_name' => 'mosaics', 'posts_per_page' => 4, 'post__not_in' => $do_not_duplicate ) ); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php $do_not_duplicate[] = $post->ID; ?>
<?php echo get_the_content(); ?>
<?php endwhile; wp_reset_postdata(); ?>
<br />
<?php $mosaics = new WP_Query( array( 'category_name' => 'mosaics', 'posts_per_page' => 3, 'post__not_in' => $do_not_duplicate ) ); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php $do_not_duplicate[] = $post->ID; ?>
<?php echo get_the_content(); ?>
<?php endwhile; wp_reset_postdata(); ?>
<br />
<?php $mosaics = new WP_Query( array( 'category_name' => 'mosaics', 'posts_per_page' => 2, 'post__not_in' => $do_not_duplicate ) ); ?>
<?php while ($mosaics->have_posts()) : $mosaics->the_post(); ?>
<?php $do_not_duplicate[] = $post->ID; ?>
<?php echo get_the_content(); ?>
<?php endwhile; wp_reset_postdata(); ?>

Deși răspunsul lui Michael funcționează, efectuarea mai multor interogări pentru aceasta reprezintă o irosire a resurselor bazei de date, când poți obține toate rezultatele într-o singură interogare și să gestionezi afișarea în PHP. Vezi acest răspuns pe care l-am dat la o altă întrebare similară pentru a obține aceleași rezultate cu o singură interogare la baza de date.

Utilizați parametrul Offset pentru buclele ulterioare, acesta va începe afișarea postărilor după numărul pe care îl specificați:
// începe de la postarea 6 până la postarea 10
$mosaics = new WP_Query('category_name=mosaics&posts_per_page=5&offset=5');
// începe de la postarea 11 până la postarea 15
$mosaics = new WP_Query('category_name=mosaics&posts_per_page=5&offset=10');
