Obtém contagem de pós do loop atual ao usar várias consultas em uma página

8

Estou tentando obter uma contagem das postagens atuais dentro de um loop. Estou usando vários loops em uma página no meu tema. Até agora eu tenho:

$my_post_count = $wp_query->post_count;

Mas quando imprimo $ my_post_count, ele retorna o número de todas as postagens no meu site do WP. Poderia ter algo a ver com o uso de várias consultas em uma página? Eu tentei usar o wp_reset_query após cada loop para ter certeza de que eu não estava jogando coisas desse jeito. O que estou fazendo errado?

    
por pwbred 16.10.2011 / 20:17

2 respostas

25

$wp_query mantém o loop principal da página e não deve ser usado para criar vários loops.

Se você estiver usando o novo objeto WP_Query , a variável que o contém terá a contagem:

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

Se você estiver usando get_posts() , então WP_Query object não está acessível e você deve contar apenas o conjunto retornado:

$posts = get_posts();
$count = count($posts);
    
por Rarst 16.10.2011 / 23:02
4

Eu acredito que o post_count é armazenado no global, então antes do loop personalizado você deve configurá-lo para 0 , já que você pode usá-lo fora do loop, mas isso depende de como você está estruturando suas várias consultas, talvez você pode adicioná-los ao seu post?

Existe outra maneira que eu uso dentro do loop que conta posts usando current_post + 1 , por exemplo.

<?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;?>
    
por Wyck 16.10.2011 / 22:54

Tags