Ottenere il conteggio dei post del loop corrente quando si utilizzano query multiple in una pagina
Sto cercando di ottenere il conteggio dei post correnti all'interno di un loop. Sto utilizzando loop multipli in una pagina del mio tema. Finora ho:
$my_post_count = $wp_query->post_count;
Ma quando stampo $my_post_count, restituisce il numero di tutti i post del mio sito WP. Potrebbe dipendere dall'utilizzo di query multiple in una pagina? Ho provato a usare wp_reset_query dopo ogni loop per assicurarmi di non creare problemi in questo modo. Cosa sto facendo di sbagliato?
$wp_query
contiene il loop principale della pagina e non dovrebbe essere utilizzato per creare loop multipli.
Se stai utilizzando un nuovo oggetto WP_Query
, la tua variabile che lo contiene avrà un conteggio corrispondente:
$my_query = new WP_Query();
// operazioni
$count = $my_query->post_count;
Se stai utilizzando get_posts()
, l'oggetto WP_Query
non è accessibile e dovresti semplicemente contare l'array restituito:
$posts = get_posts();
$count = count($posts);

Credo che il post_count sia memorizzato nel globale, quindi prima del loop personalizzato dovresti impostarlo a 0
, dato che puoi usarlo al di fuori del loop, ma questo dipende da come stai strutturando le tue query multiple, forse puoi aggiungerle al tuo post?
C'è un altro metodo che utilizzo all'interno del loop che conta i post usando current_post + 1
, ad esempio.
<?php $my_query = new WP_Query();?>
<?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();
$count_posts = $my_query->current_post + 1; //conta i post nel loop
endwhile;?>
