Loop starts from the beginning with second while loop on author.php
When the loop is complete, have_posts() rewinds it back by calling the rewind_posts() method of the $wp_query object, see here. Here’s another (more simple?) setup that you could try: while( have_posts()): the_post(); if ( 0 == $wp_query->current_post ): // post 1 elseif ( 1 == $wp_query->current_post ): // post 2 else: // other posts endif; … Read more