Hay decenas de plugins que se utilizan para mostrar miniaturas de las entradas, generalmente, una imagen y un texto resumido. La mayoría de ellos requieren que esas imágenes se encuentren en la carpeta Upload, es decir, que sean alojadas en el mismo servidor. Otros, como Custom Field Images son bastante más flexibles pero debemos agregar ese dato extra en cada post.
Custom Field Images

Custom Field Images

Pero mostrar la primera imagen que hay en una entrada puede hacerse con PHP de forma directa y así lo muestran en un Foro de Soporte de WordPress.

Sólo necesitamos crear una función:

  1. <?php
  2. function catch_that_image() {
  3.   global $post, $posts;
  4.   $first_img = '';
  5.   ob_start();
  6.   $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  7.   $first_img = $matches [1] [0];
  8.   // si no se encuentra, usamos una imagen por defecto
  9.   if(empty($first_img)){
  10.     $first_img = "/images/default.jpg";
  11.   }
  12.   return $first_img;
  13. }
  14. ?>

Y la usamos de esta forma:
  1. <img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>"/>

De esta manera, por ejemplo, estableciendo clases CSS donde se definan tamaños máximos, podríamos crear una galería:
  1. <?php if (have_posts()) : ?>
  2.   <?php query_posts('showposts=10'); ?>
  3.   <?php while (have_posts()) : the_post(); ?>
  4.     <div class="miniatura">
  5.       <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
  6.         <img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>"/>
  7.       </a>
  8.     </div>
  9.   <?php endwhile;?>
  10. <?php else : ?>
  11.   <?php include(TEMPLATEPATH . "/404.php"); ?>
  12. <?php endif; ?>