Add a counter to the query and vary the output depending upon what the count is.
You’ll need to either directly edit the args to limit to 3 posts_per_page or use pre_get_posts to do it.
pre get posts example (into your functions.php)
function hwl_home_pagesize( $query ) {
if ( is_home() ) {
// Display only 3 post for the original blog archive
$query->set( 'posts_per_page', 3 );
return;
}
}
add_action( 'pre_get_posts', 'hwl_home_pagesize', 1 );
Then into your home.php (or whichever file basic theme uses):
if ( have_posts() ) {
$i=1;
while ( have_posts() ) {
the_post();
//
if ($i==1) {
//first post
the_title();
the_content();
}else{
//other 2 posts
the_title();
the_excerpt();
}
//
$i++;
} // end while
} // end if
Now in your dashboard also make sure that settings/reading the option “show full text” is selected.
Or, if you want to start your own query you can instead of using the main query:
// WP_Query arguments
$args = array( 'posts_per_page' => '3'; 'post_type' => 'posts';
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
$i=1;
while ( $query->have_posts() ) {
$query->the_post();
// do something
if ($i==1) {
//first post
the_title();
the_content();
}else{
//other 2 posts
the_title();
the_excerpt();
}
$i++;
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
THis would eliminate the need to add to your functions.php