Obtenga el recuento de publicaciones del bucle actual al usar varias consultas en una página

8

Estoy intentando 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?

    
pregunta pwbred 16.10.2011 - 20:17

2 respuestas

25

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

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

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

Si está utilizando get_posts() , no se puede acceder al objeto WP_Query y simplemente debe contar el conjunto devuelto:

$posts = get_posts();
$count = count($posts);
    
respondido por el Rarst 16.10.2011 - 23:02
4

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

Hay otra manera de usar 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; //counts posts in loop

     endwhile;?>
    
respondido por el Wyck 16.10.2011 - 22:54

Lea otras preguntas en las etiquetas