Cómo extraer miniaturas de imágenes en WordPress

1 de febrero de 2009 — Darío Ferrer

El método explicado aquí ha sido reemplazado por esta nueva revisión del código, por lo que te invito a visitar ese nuevo artículo. Sin embargo es beneficioso que leas previamente el presente texto para que sepas de qué trata todo el asunto.

miniaturas-wordpressPrimero que nada vamos a aprender un par de conceptos básicos acerca de las imágenes en WordPress:

Principio 1.- Cuando subimos una imagen desde nuestra computadora en el editor, éste automáticamente crea tres versiones: miniatura, media y tamaño real.

Principio 2.- No es necesario que la imagen aparezca en el artículo para poderla utilizar. Basta con subirla desde el panel de edición para que WordPress la asocie con el post en cuestión. en otras palabras, una cosa es subirla y otra hacerla aparecer.

Qué vamos a lograr con esta función:

Luego de implementada estaremos capacitados para colocar cualquier imagen o miniatura en cualquier parte de nuestro sitio. Esto por supuesto se logra creando una función para llamar a la imagen.

Pasos

1.- Abre functions.php en el directorio de tu plantilla. Si el archivo no existe créalo. Copia este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// Función para extraer imagen de artículo. Autor: Darío Ferrer (alias: metacortex) 13/12/2008 - 4:45
// http://www.forosdelweb.com
// Licencia GNU/GPL. Puedes remover estos créditos si quieres.

function mi_imagen($tamano = '') {
  if ( $images = get_children( array (
    'post_parent'    => get_the_ID(),
    'post_type'      => 'attachment',
    'numberposts'    => 1,
    'post_mime_type' => 'image'
   )));
  {
    foreach( $images as $image ) {
      if($tamano == 'mini') {
      $imagen = wp_get_attachment_image( $image->ID, 'thumbnail' );
      } if($tamano == 'medio') {
      $imagen = wp_get_attachment_image( $image->ID, 'medium' );
      } if($tamano == 'grande') {
      $imagen = wp_get_attachment_image( $image->ID, 'full' );
      }
      echo $imagen;
    }
  }
}
?>

2.- Ahora todo lo que tienes que hacer es utilizar este código para extraer la imagen del artículo:

1
2
3
<?php mi_imagen($tamano = 'mini') // Para miniaturas ?>
<?php mi_imagen($tamano = 'medio') // Para tamaño medio ?>
<?php mi_imagen($tamano = 'full') // Para tamaño completo ?>

El código por supuesto debe ir incluido en el loop o bucle en el que está metido the_content. Aquí un par de ejemplos:

Ejemplo 1 con “get_posts”

1
2
3
4
5
6
7
8
9
10
11
12
<div class="capa">
<?php $lastposts = get_posts('category=7&numberposts=5');
 foreach($lastposts as $post) : setup_postdata($post); ?>
  <div class="articulo" id="articulo-<?php the_ID(); ?>">
    <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
    <div class="texto">
      <?php mi_imagen($tamano = 'mini'); ?>
      <?php the_content(__('Read more'));?>
    </div>
  </div>
  <?php endforeach; ?>
</div>

Ejemplo 2 con el bucle clásico

1
2
3
4
5
6
7
8
9
<div class="capa">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
  <div class="texto">
    <?php mi_imagen($tamano = 'mini'); ?>
    <?php the_content(__('Read more'));?>
  </div>
  <?php endwhile; else: ?><?php endif; ?>
</div>

Importante

Es necesario mencionar que la función traerá la primera imagen que subiste en cada post.

Configurar tamaños y estilos:

Tamaños de imagen: Puedes configurar los tamaños de miniatura y medio desde tu panel de control en Opciones > Misceláneas.

Estilos: Es posible que para tus estilos de miniatura desees arrimar la imagen a la izquierda y lograr que el texto se coloque al lado y fuya hacia abajo. Un ejemplo para lograrlo es colocando esto en tu hoja de estilos:

1
2
3
4
5
.texto img {
  display: block;
  float: left;
  margin-right: 8px;
}

Ideas:

Puedes jugar con los distintos tamaños de imagen para construir una página con aspecto interesante. Alternando distintos tamaños podrás sacar un máximo provecho gráfico sin menoscabo del flujo del contenido de tu index.

Igualmente es posible hacer un loop especial en tu widget y llamar las imágenes sin necesidad de traerte el contenido, a manera de una pequeña muestra de fotos aleatorias en determinada(s) categoría(s).

  • Bitacoras.com
  • Meneame
  • Twitter
  • del.icio.us
  • Facebook
  • Digg
  • Technorati
  • BarraPunto

Publicado en Wordpress. 12 Comentarios »

12 comentarios

Comentar este artículo

Nombre (Requerido)

Correo (No será publicado) (Requerido)

Sitio web

Secciones

Anteriores

comentarios recientes

@Willy en ¿Joomla Vs. Wordpress? (1ª parte): Era lo que necesitaba leer!!! como programador, aprender como editar un template de cero en joomla y...

@Willy en [Meme] Concepto bizarrón de CSS: Cagadas Siempre Suceden!! XD Counter Strike Server. no es bizarro pero bue!!

@Horacio en ¿Joomla Vs. Wordpress? (1ª parte): Hola, hace tiempo empece a trabajar con joomla y armar mi sitio web en un servidor gratuito para...

@birgitta en ¿”WatchTower” o “CashPower”?: Hilaridad sin H,mis disculpas

@birgitta en ¿”WatchTower” o “CashPower”?: AY AY AY.Cuanto lobotomizado hay por aqui!!!!!! Muchas gracias Dario por tu...

@Darío en ¿Joomla Vs. Wordpress? (1ª parte): Gracias por la sugerencia tocayo, voy a analizarla! Luego de buscar un poco más encontré que la página...

@Juan Vera en Dar acceso a grupos de Joomla (o restringírselo) para cualquier componente: Hola, mira yo quiero algo parecido pero para las personas...

@Emanuel en Dos tips sobre Adobe Reader: Detener AcroRd32Info.exe e impedir actualizaciones automáticas: Para que molestarse instalando acrobat si...

Darío Ferrer — Blog personal

Sitio desarrollado con Wordpress, software libre para un mundo libre.

59 consultas a la BD en 0,948 segundos. Blog alojado en DreamHost