Obtener el conteo de posts del loop actual cuando se usan múltiples consultas en una página

16 oct 2011, 21:17:01
Vistas: 116K
Votos: 16

Estoy tratando de obtener un conteo de las entradas actuales dentro de un loop. Estoy usando múltiples loops 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 entradas 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 loop para asegurarme de que no estaba alterando las cosas de esa manera. ¿Qué estoy haciendo mal?

0
Todas las respuestas a la pregunta 4
1
38

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

Si estás utilizando un nuevo objeto WP_Query, entonces tu variable que lo contiene tendrá el recuento correspondiente:

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

Si estás usando get_posts() entonces el objeto WP_Query no es accesible y deberías simplemente contar el conjunto devuelto:

$posts = get_posts();
$count = count($posts);
17 oct 2011 00:02:28
Comentarios

Nota: Si estás en el bucle principal, puedes acceder a WP_Query mediante global $wp_query

mrmadhat mrmadhat
22 oct 2019 11:45:48
0

Creo que el post_count se almacena en el global, así que antes del bucle personalizado deberías establecerlo en 0, ya que puedes usarlo fuera del bucle, pero esto depende de cómo estés estructurando tus múltiples consultas, quizás puedas agregarlos a tu publicación.

Hay otra forma que yo uso dentro del bucle 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; //cuenta publicaciones en el bucle

     endwhile;?>
16 oct 2011 23:54:30
2

Una solución alternativa utilizando WP_Query sería:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 
21 may 2019 11:56:27
Comentarios

Es mejor si estás usando paginación y quieres el total completo de todas las páginas.

Jake Jake
11 ene 2023 15:20:31

found_posts es mejor si estás usando paginación y quieres el total completo de todas las páginas.

Jake Jake
11 ene 2023 15:21:39
1

Forma sencilla de contar el total de publicaciones incluyendo la paginación

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

found_posts es mejor si estás usando paginación y quieres el total completo de todas las páginas.

Jake Jake
11 ene 2023 15:21:31