Una de las nuevas funcionalidades que nos encontraremos en WordPress 2.9 es el llamado post-image, que como ya hemos explicado previamente se trata de un sistema que nos permite asociar a un post una imagen y poder usarla en un theme.
Justin Tadlock muestra un completo artículo mostrando como hacer uso de esta funcionalidad.
1) Permitir la funcionalidad
Como vimos en el post de las nuevas funcionalidades de WordPress 2.9, el theme iba a coger algo de relevancia permitiendo activar/desactivar funcionalidades de WordPress desde el fichero functions.php.
Esta capacidad nos permitirá activar esta funcionalidad añadiendo un simple línea a nuestro theme:
add_theme_support( 'post-thumbnails' );
Esta línea, nos activará la funcionalidad de post-image en nuestro WordPress, permitiendo que podamos ver un box más en nuestra página de «Nueva Entrada».

(Ver Imagen)
Allí podremos seleccionar una imagen que será asociada al post.
2) Usar la funcionalidad
Una vez asociada la imagen, ya solo nos queda hacer que nuestro theme muestre la imagen donde queramos. Para ello tenemos una serie de funciones que debemos conocer:
the_post_image($size)
Esta función nos permite mostrar la imagen en el punto en el que la llamamos, requiere estar incluida dentro del Loop para funcionar.
<?php while( have_posts() ) : the_post(); ?>
<div>
<h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1>
<?php the_post_image() ?>
<?php the_content() ?>
</div>
<?php endif; ?>
Podemos usarla con un parámetro para especificar el tamaño de la imagen que queremos mostrar:
Todas hacen referencia a la configuración de imagenes del apartado Opciones > Media de nuestro panel de control.
has_post_image()
Para comprobar si un post tiene asociada una imagen deberemos usar has_post_image()
que nos devolverá true
o false
.
<?php
if ( has_post_image() )
the_post_image( 'thumbnail' );
else
echo '<img src="default-image.png" alt="Example Image" title="Example" />';
?>
get_post_image_id()
Si necesitamos obtener el ID
de la imagen podremos hacer uso de esta función que nos devolverá el ID
.
$image_id = get_post_image_id();
get_the_post_image( $id, $size )
Si necesitamos obtener la imagen de un post fuera del Loop podemos acceder directamente a ella indicándole el ID del post y el tamaño de la imagen que necesitamos.
$image = get_the_post_image( $post->ID, 'thumbnail' );
3) Filtros y actions
Además de las funciones que nos permiten trabajar cómodamente con la imágen asociada, tenemos una serie de filtros que nos permiten personalizar más aún la funcionalidad y obtener resultados de lo más dispares.
//Filters
- post_image_size
- post_image_html
// Actions
- begin_fetch_post_image_html
- end_fetch_post_image_html
Veamos un ejemplo de Justin nos muestra con el que podemos cambiar el HTML de salida de la imagen que vamos a mostrar.
add_filter( 'post_image_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id );
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
return $html;
}
Se trata de una gran funcionalidad, que muchos desarrolladores de themes estarán deseando usar en sus creaciones.