您可以在同一页面中查询很多时间,并且无论您选择的自定义帖子类型如何,您执行的所有查询都将工作正常。
注意:在第一次完成Wp\\U查询后,您需要reset
这个Wp_Query
代码执行后。
wp_reset_query(); // This will reset all the global variables to "".
wp_reset_query()
将$wp\\U查询和全局post数据恢复到原始主查询。如果必须使用该函数,则应在query\\u posts()之后调用该函数。如以下示例所述,强烈建议在进行查询之前使用pre\\u get\\u posts过滤器来更改查询参数。
不仅通过此方法,您还可以重置Wp_Query
您还可以使用其他方法重置post data
以及$args
.
有关重置查询选项的快速参考。
wp_reset_query()
- 最好在query\\u posts循环后使用,以重置自定义查询wp_reset_postdata()
- 最好在使用WP\\U查询创建自定义或多个循环后使用rewind_posts()
- 最适合在同一页上重复使用同一查询
我希望这是一篇关于何时&;的有用综述;如何重置/回放WordPress循环
wp_reset_postdata()
$random_post = new WP_query();
$random_post->query(\'cat=3&showposts=1&orderby=rand\');
while ($random_post->have_posts()) : $random_post->the_post();
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<img src="<?php echo get_post_meta($random_post->ID, \'featured\', true); ?>">
</a>
endwhile;
wp_reset_postdata();
何时使用:最好在使用WP\\U查询创建自定义或多个循环之后使用。
wp_reset_query()
<?php query_posts(\'posts_per_page=3\');
if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
何时使用:最好在查询后使用\\u posts循环在自定义查询后重置内容。
rewind_posts()
if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php endwhile; endif; ?>
<?php rewind_posts(); ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
所以,虽然
wp_reset_query
和
wp_reset_postdata
重置整个查询对象,rewind\\u posts只会重置post计数,如中的函数所示
wp-includes/query.php
文件:
// rewind the posts and reset post index
function rewind_posts() {
$this->current_post = -1;
if ( $this->post_count > 0 ) {
$this->post = $this->posts[0];
}
}
何时使用:最适合在同一页面上重复使用同一查询。