I'm trying to achieve simple result. Run main loop 2 times, but first time for the one post with different layout, and second time for the rest posts with different layout. I found that condition 1 > $wp_query->current_post can show only the first post in my loop. But when I run loop again it starts with 3rd post and skipping the 2nd.
Here is the code:
<!-- Full Post -->
<?php if ( have_posts() ) :
while ( have_posts() ) : the_post();
// first post
if( 1 > $wp_query->current_post ):
get_template_part( 'template-parts/content', get_post_format() );
else :
break;
endif;
endwhile;
?>
<!-- Small Posts -->
<div class="row">
<?php
while( have_posts() ) : the_post();
get_template_part( 'template-parts/post-small', get_post_format() );
endwhile;
?>
</div>
rewind_posts()
codex.wordpress.org/Function_Reference/rewind_posts between the loops.