Cum să stilizați primul post din loop ca un post „nou / recomandat”
Sper că pot explica corect, ceea ce încerc să fac este să folosesc loop-ul implicit WordPress pentru a afișa toate postările, dar pentru prima postare aș dori să fie stilizată complet diferit în funcție de categoria părinte în care a fost publicată, așa că ar fi multe elemente în acea primă postare.
În prezent, realizez parțial acest lucru folosind 2 bucle care preiau ambele din loop-ul implicit. Prima buclă este zona mea pentru postarea „nouă / recomandată” și este setată la posts_per_page=1, apoi a doua buclă este loop-ul standard. Problema pe care o am este că evident afișează postări duplicate. Am încercat offset=1 la a doua buclă, dar atunci paginarea nu funcționează. Orice ajutor sau orientare ar fi minunat, știu că e mult. Mai jos este codul meu pentru ambele bucle și un link către site-ul de testare. Mulțumesc!
Prima buclă (nouă / recomandată):
<?php $custom_query = new WP_Query('posts_per_page=1');
while($custom_query->have_posts()) : $custom_query->the_post(); ?>
<?php
$parent_cat = array();
$post_cats = get_the_category($post->ID);
foreach( $post_cats as $post_cat ) {
if( $post_cat->parent ) $parent_cat[] = get_category( $post_cat->parent )->slug;
}
?>
<!--CONȚINUT AICI-->
<?php endwhile; ?>
<?php wp_reset_postdata(); // resetare query ?>
<?php } else { ?>
A doua buclă (standard):
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<!--CONȚINUT AICI-->
<?php endwhile; else: ?>
<?php _e('Ne pare rău, nicio postare nu corespunde criteriilor dumneavoastră.'); ?>
<?php endif; ?>
Aici este un link către site-ul de dezvoltare unde puteți vedea despre ce vorbesc: http://themes.thefragilemachine.com/gone/
Mulțumesc pentru orice ajutor!
De asemenea, verifică dacă is_archive() sau !is_singular() pentru a te asigura că pagina nu are un singur post. Nu știu dacă is_paged() are același efect.

se pare că funcționează, dar afișează doar 1 post și niciun fragment, http://themes.thefragilemachine.com/gone/, am observat că am is_paged()

Adaugă doar o variabilă care va funcționa o singură dată cu PHP, ca în acest exemplu:
<?php $custom_query = new WP_Query('posts_per_page=1');
$i = 0; while($custom_query->have_posts()) : $custom_query->the_post(); ?>
<?php if($i==0){
// faci - afișezi orice dorești
$i++;
} else {
// restul articolelor
} ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); // resetează interogarea ?>
