Mic*_*hal 6 php wordpress wordpress-theming
什么是WordPress的功能之间的差异rewind_posts(),wp_reset_postdata()并且wp_reset_query(),当我要使用它们?
如果我有这部分代码single.php:
$query = new WP_Query($some_args);
while ($query->have_posts()) : $query->the_post();
...
endwhile;
Run Code Online (Sandbox Code Playgroud)
这等于这个:
$query = new WP_Query($some_args);
while (have_posts()) : the_post();
...
endwhile;
Run Code Online (Sandbox Code Playgroud)
你问题中的两个陈述并不相同.
在第一个块中,您将循环浏览自定义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
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |