Custom Queries.
Как раз сейчас доделываем очень похожее решение:
businesslife.in.ua
Смотрите часть на белом фоне - 4 раздела, выводятся в отдельных блоках. Для 1 раздела выводятся последние Х в одном суб-шаблоне, для 3х остальных - отдельными блоками каждого раздела (отдельно Новости, Lifestyle, Break), в разных суб-шаблонах (с картинкой и описание, только заголовок).
Код кастомного запроса:
/**
* Custom query for "News" section
*/
$news_args = array(
'category_name' => 'news',
'posts_per_page' => '5',
);
$news = new WP_query ( $news_args );
Код вывода (loop):
if ($news->have_posts ()) :
$first = true;
while ($news->have_posts ()) : $news->the_post();
if ( $first ) :
get_template_part( 'content', 'article-medium' );
$first = false;
else :
get_template_part( 'content', 'article-small' );
endif;
endwhile;
endif;
Для оптимизации и ускорения процесса генерации таких страниц желательно кеширование, как минимум через transients API.