Dapatkan hitungan posting dari loop saat ini ketika menggunakan beberapa kueri pada satu halaman


10

Saya mencoba menghitung jumlah posting saat ini di dalam satu lingkaran. Saya menggunakan banyak loop pada satu halaman di tema saya. Sejauh ini saya punya:

$my_post_count = $wp_query->post_count;

Tetapi ketika saya mencetak $ my_post_count, ia mengembalikan jumlah semua posting di situs WP saya. Mungkinkah ada hubungannya dengan menggunakan beberapa kueri pada satu halaman? Saya mencoba menggunakan wp_reset_query setelah setiap loop untuk memastikan saya tidak membuang hal-hal seperti itu. Apa yang saya lakukan salah?

Jawaban:


29

$wp_query tahan loop utama halaman dan jangan digunakan untuk membuat banyak loop.

Jika Anda menggunakan WP_Queryobjek baru maka variabel Anda yang memegangnya akan memiliki jumlah sesuai:

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

Jika Anda menggunakan get_posts()maka WP_Queryobjek tidak dapat diakses dan Anda hanya harus menghitung set yang dikembalikan:

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

Catatan: Jika Anda berada di loop utama, Anda dapat mengakses WP_Querymelaluiglobal $wp_query
mrmadhat

5

Saya percaya post_count disimpan di global, jadi sebelum loop kustom Anda harus mengaturnya 0, karena Anda dapat menggunakannya di luar loop, tetapi ini tergantung pada bagaimana Anda menyusun beberapa permintaan Anda, mungkin Anda dapat menambahkannya ke posting Anda ?

Ada cara lain yang saya gunakan dalam loop yang menghitung posting menggunakan current_post + 1, misalnya.

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

Solusi alternatif menggunakan WP_Query adalah:

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

0

Cara sederhana untuk menghitung total posting termasuk pagignation

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.