Have a look at WP_Query
when you need to loop through posts.
<?php
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'post__not_in' => array(),
'order' => 'DESC',
);
$the_query = new WP_Query($args);
// Show the first 3 posts
while($the_query->have_posts()) { $the_query->the_post();
echo '<h2>'.get_the_title().'</h2>';
// Have we shown 3 yet? Break then. (current_post counter stats at 0)
if( $the_query->current_post == 2 ) { break; }
}
// Continue the loop where we left off
while($the_query->have_posts()) { $the_query->the_post();
echo '<h2>'.get_the_title().'</h2>';
}
wp_reset_postdata();
?>