Способов вывести какую-то дефолтную картинку (т.е. картинку по умолчанию) в случае отсутствия миниатюры у записи — несколько.
Предлагаю разобрать два, наиболее популярных варианта.
Одинаковая картинка для всех записей без миниатюр.
Код, который я привожу ниже, как правило вставляют в файл шаблона archive.php, поскольку именно этот файл отвечает за формирование списка записей в рубрике.
if (has_post_thumbnail()): // если миниатюра есть
the_post_thumbnail(); // выводим ее
else:
print 'default image'; // если нет, то показываем файл no_img.jpg
endif;
Вывод первой прикрепленной картинки.
Более продвинутый способ, который целесообразно использовать в тех случаях, когда Вы точно уверены, что при создании записей загружались изображения, которые содержаться в тексте, но в тоже время ни одно из изображений не использовалось в качестве миниатюры записи.
<?php
$args = array('attachment', 'orderby' => 'menu_order', 'order'=> 'ASC', 'numberposts' => 3, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
$get_children_array = get_children($args, ARRAY_A); // вернет массив с ключами: [$image_ID]…
$rekeyed_array = array_values($get_children_array); // обнулим ключи
$child_image = $rekeyed_array[0]; // первая картинка из массива
$img_url = $child_image['guid']; // заносим урл первой картинки в переменную $img_url
?>
<!— Теперь для вывода самой картинки нужно использовать например такой код —>
<img class="alignleft" src="<?php echo $img_url; ?>" alt="" height="165" />
Очевидно, что при желании можно комбинировать оба способа, однако подобное не всегда востребовано.