wp_reset_query()或wp_reset_postdata()

时间:2016-07-26 16:33:22

标签: wordpress loops

我对此感到困惑,所以我问一个例子:

    <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_reset_postdata()的每个循环后,我必须在每个自定义WP_Query()wp_reset_query()之后使用query_posts()

就这么简单吗?

1 个答案:

答案 0 :(得分:1)

使用wp_reset_query()时,您永远不必使用$wp_queryquery_posts()仅用于将wp_reset_postdata()和全局发布数据恢复为原始主查询(您should never use )。

相反,如果要在使用$post的辅助查询循环后恢复主查询循环的全局new WP_Query()变量,则应该只使用nil您已在示例中正确使用了此功能。