Obtenga el recuento de publicaciones del bucle actual cuando use múltiples consultas en una página

10

Estoy tratando de obtener un recuento de las publicaciones actuales dentro de un bucle. Estoy usando múltiples bucles en una página en mi tema. Hasta ahora tengo:

$my_post_count = $wp_query->post_count;

Pero cuando imprimo $ my_post_count, devuelve el número de todas las publicaciones en mi sitio WP. ¿Podría tener algo que ver con el uso de múltiples consultas en una página? Intenté usar wp_reset_query después de cada ciclo para asegurarme de que no estaba tirando las cosas de esa manera. ¿Qué estoy haciendo mal?

pwbred
fuente

Respuestas:

29

$wp_query mantenga el bucle principal de la página y no debe usarse para crear múltiples bucles.

Si está utilizando un nuevo WP_Queryobjeto, su variable que lo contenga tendrá el conteo correspondiente:

$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;

Si está utilizando, get_posts()entonces el WP_Queryobjeto no está accesible y solo debe contar el conjunto devuelto:

$posts = get_posts();
$count = count($posts);
Rarst
fuente
Nota: Si está en el bucle principal, puede acceder a WP_Querytravés deglobal $wp_query
mrmadhat el
5

Creo que post_count se almacena en el global, por lo que antes del bucle personalizado debe configurarlo 0, ya que puede usarlo fuera del bucle, pero esto depende de cómo esté estructurando sus consultas múltiples, tal vez pueda agregarlas a su publicación ?

Hay otra forma que uso dentro del ciclo que cuenta las publicaciones usando current_post + 1, por ejemplo.

<?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; //counts posts in loop

     endwhile;?>
Wyck
fuente
2

Una solución alternativa usando WP_Query sería:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 
Pandey Amritosh
fuente
0

Manera simple de contar la publicación total, incluida la paginación

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
Suresh Suthar
fuente