Bir sayfada birden çok sorgu kullanırken geçerli döngünün yayın sayısını alın


10

Bir döngü içinde geçerli mesajların sayısını almaya çalışıyorum. Temamdaki bir sayfada birden çok döngü kullanıyorum. Şimdiye kadar var:

$my_post_count = $wp_query->post_count;

Ancak $ my_post_count yazdırdığımda, WP sitemdeki tüm yayınların sayısını döndürür. Bir sayfada birden çok sorgu kullanılmasıyla ilgili bir şey olabilir mi? Ben her döngüden sonra şeyler bu şekilde atma değildi emin olmak için wp_reset_query kullanarak çalıştı. Neyi yanlış yapıyorum?

Yanıtlar:


29

$wp_query sayfanın ana döngüsünü tutun ve birden çok döngü oluşturmak için kullanılmamalıdır.

Yeni bir WP_Querynesne kullanıyorsanız , onu tutan değişkeniniz sayıma göre olacaktır:

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

Eğer kullanıyorsanız get_posts()o zaman WP_Querynesne erişilemez ve sadece döndü setini saymak gerekir:

$posts = get_posts();
$count = count($posts);

Not: ana döngü içinde iseniz, erişebilir WP_Queryaracılığıylaglobal $wp_query
mrmadhat

5

Post_count'un genel olarak depolandığına inanıyorum, bu yüzden özel döngüden önce onu ayarlamanız gerekir 0, çünkü döngü dışında kullanabilirsiniz, ancak bu birden çok sorgunuzun nasıl yapılandırıldığına bağlıdır, belki de yazılarınıza ekleyebilirsiniz ?

Döngü içinde, current_post + 1örneğin kullanarak mesajları sayan başka bir yol var .

<?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;?>

2

WP_Query kullanan alternatif bir çözüm:

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

0

Sayfalandırma dahil toplam yayını saymanın basit yolu

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.