1

Wordpress Web サイトの 1 ページに 3 つのループがあります。各ループは異なることを行いますが、一番下にあるループの 1 つ (loop2) を再利用したいと思います。そのため、最初に使用した直後にこのループを巻き戻そうとしましたが、2回目は再びループしないため、何らかの理由で機能しません。

wp_reset_postdata各ループの後に呼び出す I と何か関係がありますか? 私は何が欠けていますか?

これが私のコードです:

$loop1 = new WP_Query(array(
    // some args
));
if( $loop1->have_posts() ) {
    while( $loop1->have_posts() ) { $loop1->the_post();
        // do something
    }
    wp_reset_postdata();
}
$loop2 = new WP_Query(array(
    // some args
));
if( $loop2->have_posts() ) {
    while( $loop2->have_posts() ) { $loop2->the_post();
        // do something
    }
    // REWIND this loop
    $loop2->rewind_posts();
    wp_reset_postdata();
}
$loop3 = new WP_Query(array(
    //some args
));
if( $loop3->have_posts() ) {
    while( $loop3->have_posts() ) { $loop3->the_post();
        // do something
    }
    wp_reset_postdata();
}

// HERE WE GO: do the rewinded loop again
if( $loop2->have_posts() ) {
    while( $loop2->have_posts() ) { $loop2->the_post();
        echo 'Yes! It is working.';
    }
    wp_reset_postdata();
} else {
    echo 'Nope :( Not working...';
}
4

3 に答える 3