WordPress(rewind_posts(),wp_reset_postdata()和wp_reset_query()之间的区别)
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;
是否等于:
$query = new WP_Query($some_args);
while (have_posts()) : the_post();
...
endwhile;
#1你的问题中的两个陈述不相等。
在第一个块中, 你循环浏览自定义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
#2倒带后退-倒退到循环的开始, 通常清除当前循环。例
<
? Php
/ / use the cycle for the first time
if ( have_posts ( )) {while ( have_posts ( ) ) { the_post ( ) ;
?>
<
! - - display information about the post - - >
<
? php}}?>
<
! - - any - anything any code - - >
<
? Php
/ / use the cycle for the second time
/ / rewind to the beginning of the cycle to once again ispolzvoat heve_posts ()
rewind_posts ( ) ;
if ( have_posts ( )) {while ( have_posts ( ) ) { the_post ( ) ;
?>
<
! - - display information about the post - - >
<
? php}}?>
你可能不需要wp_reset_query()。 wp_reset_query()取消设置主$ wp_query变量, 然后将其重置为$ wp_the_query的值, 然后运行wp_reset_postdata()。好吧, 如果你不使用query_posts(), 那么你真的不应该像wp_reset_query()那样弄乱$ wp_query主变量。
【WordPress(rewind_posts(),wp_reset_postdata()和wp_reset_query()之间的区别)】自定义WP_Query之后, 你需要做的就是使用wp_reset_postdata(), 它将各种全局post变量重置为其原始值。
这里参考
推荐阅读
- WordPress(使用过滤器在加载时显示特定类别)
- WordPress自定义主题-在footer.php中调用时菜单不显示
- WordPress的显示自定义帖子类型
- WordPress(”自定义字段”,”元框”和”分类”之间的区别)
- wordpress数据库未显示在PhpMyAdmin中
- WordPress自定义帖子类型分类模板
- WordPress自定义表单在管理面板上提交数据视图()
- WordPress自定义帖子类型和类别,在index.php中查询时不会从自定义帖子类型中显示帖子
- 1-4 第4章-Vim编辑器和恢复ext4下误删除的文件-Xmanager工具