簡體   English   中英

WordPress中具有相同WP_Query的多個循環

[英]Multiple loops with same WP_Query in WordPress

我有一個相同的WP_Query有兩個循環,我嘗試放置wp_reset_postdata(); 無論是右后endwhile; 在每個循環中,或者在所有循環中都只有一次(如下所示),兩者似乎都在工作。

正確的做法是什么,為什么?

<?php
$q = new WP_Query((array(
    'cat' => 1,
    'posts_per_page' => -1
)));

if ($q->have_posts()) :
    while ($q->have_posts()) : $q->the_post();
        // first loop
    endwhile;
endif;

if ($q->have_posts()) :
    while ($q->have_posts()) : $q->the_post();
        // second loop
    endwhile;
endif;

wp_reset_postdata(); // should reset be here or after endwhile; in each loop?
?>

WP_Query::have_posts()並確定沒有更多的帖子時,它將自動倒回該查詢的結果指針以從頭開始。 您可以在此處查看相關代碼, 在此處部分復制:

} elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
    /* Some code removed here for the sake of brevity */

    // Do some cleaning up after the loop
    $this->rewind_posts();
}

文檔中的示例代碼來看,似乎只在處理多個查詢時才需要調用wp_reset_postdata() ,但是我對WordPress的了解並不足夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM