問題描述
我試圖得到一個迴圈中當前帖子的數量。我在主題中的一個頁面上使用了多個迴圈。到目前為止我有:
$my_post_count = $wp_query->post_count;
但是當我列印 $ my_post_count 時,它將返回 WP 站點上的所有帖子的數量。它可以與在一個頁面上使用多個查詢有關嗎?我試過在每個迴圈之後使用 wp_reset_query,以確保我沒有這樣扔東西。我究竟做錯了什麼?
最佳解決方案
$wp_query 儲存頁面的主迴圈,不應用於建立多個迴圈。
如果您正在使用新的 WP_Query 物件,那麼儲存它的變數將具有以下數值:
$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;
如果您使用的是 get_posts(),那麼 WP_Query 物件是不可訪問的,您應該只返回一組:
$posts = get_posts();
$count = count($posts);
次佳解決方案
我相信 post_count 儲存在全域性中,所以在自定義迴圈之前,您應該將其設定為 0,因為您可以在迴圈之外使用它,但這取決於您如何構造多個查詢,也許您可以將它們新增到張貼?
例如,在迴圈中使用 current_post + 1 來計算帖子的另一種方法。
<?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;?>
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。