The incomplete Codex about this, says very simply:
rewind_posts():
Rewind the loop posts.
As per this WPSE thread, with Eugene Manuilov‘s answer, I got:
<?php
// fetch first post from the loop
the_post();
// get post type
$post_type = get_post_type();
// rewind the loop posts
rewind_posts();
?>
With Ian Stewart’s theme development tutorial, I found rewind_posts()
‘s use in archive.php
, category.php
, tag.php
, author.php
:
<?php the_post(); ?>
<!-- echo page title -->
<?php rewind_posts(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<!-- echo content -->
<?php endwhile; ?>
But in TwentyThirteen theme we can’t see something like this, but a simple WordPress loop with conditional:
<?php if ( have_posts() ) : ?>
<!-- echo page title -->
<?php while ( have_posts() ) : the_post(); ?>
<!-- echo content -->
<?php endwhile; ?>
<?php endif; ?>
So, I just want to know, while I have the WordPress loop to use, and that works with pagination also, then where do I need to REWIND THE LOOP, and why?
EDIT
Ok, after the first answer, I got a very good article describing the 3 Query-reset functions in WordPress:
I hope with this the answer can be a lot more educative than currently what we got.
It generally the clears the current loop
Here it clears the main loop and start with the new loop
Reference: http://codex.wordpress.org/Function_Reference/rewind_posts
It is actually not necessary if you use
have_posts()
in the loop since it is called at the end of the loop in said function: