Разные размеры миниатюр на главной странице?
<?php if ( have_posts() ) :  $n=1; while ( have_posts() ) : the_post(); 
$flag = $n%5 ;
/** если повторяете через 5 постов то делите по модулю на 5
* дальше от результата деления подставляете 
* необходимый размер миниатюры
* соответственно при $flag = 2 ||  $flag = 4 средний
* при 6 и 8 мелкий
* при 0 большой
* и на новый круг
* или 
*if( $flag >0 && $flag < 5 ) {
* } elseif { ( $flag > 5 ) {
*} else {
*}
*/


$n++; endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
Чтобы не плодить кучу копий одного и того же изображения с разными размерами, можно воспользоваться методом WP Panda, но задавать разный размер контейнера миниатюры с помощью CSS, а сами миниатюры выводить методом Fluid Image.
Да, при таком способе вывода будет лишний трафик для пользователя, но он будет измеряться килобайтами. На мой взгляд, не критично. Но, конечно же, для тотальной экономии трафика такой метод не годится.