
Si eres aficionado a la fotografía seguramente uses el servicio de Flickr, donde puedes cargar fácilmente tus fotos y que otras personas las visualicen en modo de presentación o por tamaño de imagen. También, es posible, que uses WordPress para mostrar tus mejores fotos en un blog o portfolio personal, que siempre posiciona mejor en los buscadores.
Si este es tu caso seguramente echarás en falta algunas funcionalidades de Flickr en WordPress, y una de las más obvias es poder mostrar al visitante todos los tamaños disponibles de la imagen.
Como ya sabrás, y sino lo recordamos, cuando subes una imagen a WordPress este almacena varias versiones de la misma. El objeto de este es ofrecerte varios tamaños a insertar en tus entradas, y que no tengas que redimensionar por HTML, reduciendo así la carga de página. Por supuesto, siempre puedes enlazar un tamaño menor al tamaño completo de imagen, u otro, desde el cargador de imágenes de WordPress.
Luego, esto se muestra en la página de adjuntos, normalmente gestionada por los temas WordPress mediante un fichero habitualmente llamado attachment.php o image.php. Lo que pasa es que, generalmente, solo se mostrará la imagen enlazada, sin darte más opciones. Vamos a solucionarlo …
Lo primero que tienes que hacer es abrir el fichero functions.php y añadir lo siguiente:
PHP: -
function enlaces_imagenes() {
-
-
/*Si no estamos en una página de adjuntos volvemos. */
-
if ( !wp_attachment_is_image( get_the_ID() ) )
-
return;
-
-
/* Establece un array vacío para los enlaces links. */
-
-
-
/* Obtenemos los tamaños intermedios de imágenes y añadimos el tamaño máximo al array. */
-
$sizes = get_intermediate_image_sizes();
-
$sizes[] = 'full';
-
-
/* Hacemos el loop por cada tamaño de imagen. */
-
foreach ( $sizes as $size ) {
-
-
/* Obtenemos el origen, ancho, atura y tamaño de la imagen intermedia. */
-
$image = wp_get_attachment_image_src( get_the_ID(), $size );
-
-
/* Añade el enlace al array si hay una imagen y si el array $is_intermediate (4º valor del array) es true o si es el tamaño completo. */
-
if ( !
empty( $image ) &&
( true ==
$image[3] ||
'full' ==
$size ) ) -
$links[] = "<a class='image-size-link' href='{$image[0]}'>{$image[1]} × {$image[2]}</a>";
-
}
-
-
/* Unimos los enlaces en una cadena y volvemos. */
-
return join( ' <span class="sep">/</span> ',
$links );
-
}
Guardamos los cambios y ahora, en el fichero attachment.php o image.php del tema ponemos lo siguiente en el loop, sustituyendo el correspondiente, normalmente justo después de la llamada al título del adjunto:
PHP: -
<?php if ( wp_attachment_is_image( get_the_ID() ) ) { ?>
-
<div class="image-meta">
-
<?php printf( __
( 'Otros tamaños: %s',
'example-textdomain' ), enlaces_imagenes
() );
?> -
</div>
-
<?php } ?>
Guardamos y ya está, ahora cuando alguien haga clic en un adjunto tendrá la posibilidad de visualizar todos los tamaños de la imagen.