wordpress函数rewind_posts(),wp_reset_postdata()和wp_reset_query()之间有什么区别?何时应该使用它们?
$query = new WP_Query($some_args); while ($query->have_posts()) : $query->the_post(); ... endwhile;
这等于这个:
$query = new WP_Query($some_args); while (have_posts()) : the_post(); ... endwhile;
你问题中的两个陈述并不相同.
原文链接:https://www.f2er.com/php/130260.html在第一个块中,您循环浏览自定义WP_Query,$query返回的帖子.
在第二个块$query中没有做任何事情,帖子实际上来自全局$wp_query.
rewind_posts() – 这听起来确实如此.运行循环后,此函数用于返回到开头,允许您再次运行相同的循环.
wp_reset_postdata() – 在您的第一个代码块中运行自定义WP_Query.这将修改全局$post变量.在使用wp_reset_postdata()运行该查询之后,将全局$post变量恢复回主查询中的第一个帖子.
wp_reset_query() – 如果更改全局$wp_query或使用query_posts(),则应该使用它(我不建议使用query_posts()).它将$wp_query重置为原始版本.
进一步阅读:
http://codex.wordpress.org/Function_Reference/rewind_posts
http://codex.wordpress.org/Function_Reference/wp_reset_postdata
http://codex.wordpress.org/Function_Reference/wp_reset_query