2016-07-26 6 views
0

私はこれで混乱してるので、私は例と尋ねる:この例ではwp_reset_query()またはwp_reset_postdata()

<ul class="prod"> 
    <?php $woop = new WP_Query($wol); 
    while ($woop->have_posts()) : $woop->the_post(); global $prod; ?> 

       <h3><?php the_title(); ?></h3> 
<?php woocommerce_template_loop_add_to_cart($woop->post, $prod);?>  

<?php endwhile; wp_reset_postdata();?> 
    </ul> 

私はwp_reset_query()wp_reset_postdata()を使用する必要がありますか?

私が理解しているところでは、WP_Query()wp_reset_query()のすべてのループの後にquery_posts()を使用してwp_reset_postdata()を使用しなければならなかったということです。

それは簡単ですか?

答えて

1

あなただけquery_posts()(これはあなたshould never use)を使用した場合、元のメインクエリに$wp_queryとグローバルポストデータを復元するために使用され、wp_reset_query()を使用する必要はありません。

代わりに、new WP_Query()を使用してセカンダリクエリループの後にメインクエリループのグローバル$post変数を復元する場合は、wp_reset_postdata()を使用する必要があります。 この例ではこれを正しく使用しています。

関連する問題