Ottenere il conteggio dei post del loop corrente quando si utilizzano query multiple in una pagina

16 ott 2011, 21:17:01
Visualizzazioni: 116K
Voti: 16

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?

0
Tutte le risposte alla domanda 4
1
38

$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);
17 ott 2011 00:02:28
Commenti

Nota: Se ti trovi nel loop principale, puoi accedere a WP_Query tramite global $wp_query

mrmadhat mrmadhat
22 ott 2019 11:45:48
0

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;?>
16 ott 2011 23:54:30
2

Una soluzione alternativa utilizzando WP_Query sarebbe:

           <?php 
               $args = array(
               'post_type' => 'post' // Tipo di contenuto: articoli
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; // Conteggio totale articoli trovati
            ?> 
21 mag 2019 11:56:27
Commenti

È meglio se stai utilizzando l'impaginazione e vuoi il totale completo di tutte le pagine.

Jake Jake
11 gen 2023 15:20:31

found_posts è meglio se stai utilizzando l'impaginazione e vuoi il totale completo di tutte le pagine.

Jake Jake
11 gen 2023 15:21:39
1

Metodo semplice per contare il totale dei post inclusa l'impaginazione

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
8 mag 2019 13:17:02
Commenti

found_posts è migliore se stai utilizzando la paginazione e vuoi il totale completo di tutte le pagine.

Jake Jake
11 gen 2023 15:21:31