我对此感到困惑,所以我问一个例子:
<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()
。
就这么简单吗?
答案 0 :(得分:1)
使用wp_reset_query()
时,您永远不必使用$wp_query
,query_posts()
仅用于将wp_reset_postdata()
和全局发布数据恢复为原始主查询(您should never use )。
相反,如果要在使用$post
的辅助查询循环后恢复主查询循环的全局new WP_Query()
变量,则应该只使用nil
。 您已在示例中正确使用了此功能。