sábado, 12 de febrero de 2011

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Mostrar todos los tamaños de imagen disponibles

Posted: 12 Feb 2011 10:14 AM PST

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:
  1. function enlaces_imagenes() {
  2.  
  3.     /*Si no estamos en una página de adjuntos volvemos. */
  4.     if ( !wp_attachment_is_image( get_the_ID() ) )
  5.         return;
  6.  
  7.     /* Establece un array vacío para los enlaces links. */
  8.     $links = array();
  9.  
  10.     /* Obtenemos los tamaños intermedios de imágenes y añadimos el tamaño máximo al array. */
  11.     $sizes = get_intermediate_image_sizes();
  12.     $sizes[] = 'full';
  13.  
  14.     /* Hacemos el loop por cada tamaño de imagen. */
  15.     foreach ( $sizes as $size ) {
  16.  
  17.         /* Obtenemos el origen, ancho, atura y tamaño de la imagen intermedia. */
  18.         $image = wp_get_attachment_image_src( get_the_ID(), $size );
  19.  
  20.         /* 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. */
  21.         if ( !empty( $image ) && ( true == $image[3] || 'full' == $size ) )
  22.             $links[] = "<a class='image-size-link' href='{$image[0]}'>{$image[1]} &times; {$image[2]}</a>";
  23.     }
  24.  
  25.     /* Unimos los enlaces en una cadena y volvemos. */
  26.     return join( ' <span class="sep">/</span> ', $links );
  27. }

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:
  1. <?php if ( wp_attachment_is_image( get_the_ID() ) ) { ?>
  2.     <div class="image-meta">
  3.         <?php printf( __( 'Otros tamaños: %s', 'example-textdomain' ), enlaces_imagenes() ); ?>
  4.     </div>
  5. <?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.

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog