Для начала нужно вставить код в functions.php

function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];
  
  if(empty($first_img)){ //Defines a default image
    $first_img = "<img src='img/default.jpg'>";
  }
  return $first_img;
}

В строке 10 можно добавить стандартную картинку, которая будет подставляться, если в записи картинок не будет.

И в нужное место в категории (рубрике) вставляем код в цикл —

<img src="<?php echo catch_that_image(); ?>"/>

Визуализация

Добавляем в шаблон —

<div class="thumbnail-post">
  <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> 
    <img src="<?php echo catch_that_image() ?/>" alt="<?php the_title_attribute();  ?>" title="" /> 
  </a>
</div>

Добавляем в стили —

.thumbnail-post img{ 
  float:left;
  width:140px; 
  height:140px; 
  border: 8px solid #f8f7f2; 
  box-shadow: 3px 6px 8px 1px rgba(0, 0, 0, 0.3); 
  -moz-box-shadow:3px 6px 8px 1px rgba(0, 0, 0, 0.3); 
  -webkit-box-shadow: 3px 6px 8px 1px rgba(0, 0, 0, 0.3);
  margin-left: 23px; 
  margin-bottom: 17px;
  margin-top: 7px;
}

Итог:

07830a1126