Si queremos crear un índice o unos archivos donde se haga un uso extensivo de imágenes (al lado de los extractos, por ejemplo), siempre puede ser interesante hacerlo sin depender de plugins.
Hoy vamos a proponeros un código que lo hará posible, y que deberemos pegar en functions.php.
Se nos permitirá entonces disponer de un nuevo ‘template tag’, que podremos usar dentro de nuestros Loops, con el que imprimir la imagen en cuestión.
El código es el siguiente :
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)){
$first_img = "/images/default.jpg"; // default image
}
return $first_img;
}
Recordemos que este código debe ir dentro de las declaraciones de apertura y cierre de php, que ya encontraremos en nuestro functions.php, o que habrá que añadir.
Nos dirigiremos ahora a nuestros archivos o índice, y usaremos el siguiente template tag, que equivaldrá a la primera imagen del post:
<?php echo catch_that_image(); ?>
Si lo quisiéramos linkando a la página final:
<a href="<?php the_permalink(); ?>"><?php echo catch_that_image(); ?></a>



3 comentarios
27/01/2010
¿Y no sería mejor -y más fiable- utilizar las funciones nativas de WordPress para tal fin?:
http://www.forosdelweb.com/f118/tutorial-como-extraer-miniaturas-imagenes-wordpress-653664/
27/01/2010
Gracias Darío, veo que con la función se pueden utilizar los tres tamaños que WP crea de cada imagen subida (miniatura, medio, grande) de modo que está bastante mejor.
21/07/2010
Ignacio,
tu ejemplo es diferente ya que si tenemos alojdas las imagenes en otro lugar como por ejemplo picassa este guión es de maravillas.
gracias
Deja tu comentario