WordPress重置循环是WordPress开发中调用文章常用的手段,但是如果使用WordPress循环没有WordPress重置循环可能会出现一些潜在问题,而WordPress对主循环管理的很不错,但当你开始大刀阔斧的写自定义程序时,可能会在一个模板中使用多次循环,为了不造成潜在问题,每次循环结束后都应该重置WordPress循环。

wp_reset_postdata() wp_reset_query() rewind_posts()
使用WP_Query创建多个循环是使用,不接受任何参数,恢复$post全局变量的数据 使用query_posts()自定义循环时使用,不接受任何参数,不仅恢复$post全局变量,还会销毁之前的查询 需要重用同一个页面的查询结果时使用

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_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(); ?>

//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; ?>

学会了WordPress重置循环去看看您自己的模板是否做对了WordPress重置循环吗?本节WordPress重置循环教程完毕更多WordPress教程尽在瑞课学院。