Mostrar todos os tamanhos de imagens anexadas
segunda-feira, 31/01/2011 às 14:45
Mostrar todos os tamanhos de imagens anexadas do site: Arquivo.tk
Veja como mostrar todos os tamanhos de imagens anexadas à postagem. Dica de Justin Tadlock.
Um recurso muito esquecido pelas pessoas é o de mostrar suas imagens em uma página gerada especialmente para anexos.
Este exemplo obtém todos os tamanhos de imagens de uma imagem anexada, com seus respectivos links diretos. Ou seja, quando o visitante clicar em uma imagem da postagem, ele será redirecionado para a página gerada que vai mostrar também os links para os outros tamanhos daquela imagem.
A função
Não existe nada pronto, então o Justin criou a função que você deve adicionar a seu arquivo functions.php:
function my_get_image_size_links() { /* If not viewing an image attachment page, return. */ if ( !wp_attachment_is_image( get_the_ID() ) ) return; /* Fixa array vazio para os links. */ $links = array(); /* Obtém tamanho intermediario de imagens adiciona tamanho completo */ $sizes = get_intermediate_image_sizes(); $sizes[] = 'full'; /* Loop para cada tamanho. */ foreach ( $sizes as $size ) { /* Obtém fonte, largura, altura e se intermediário */ $image = wp_get_attachment_image_src( get_the_ID(), $size ); /* Adiciona o link ao array se ha imagem e se $is_intermediate (4th array value) for verd. ou tamanho todo. */ if ( !empty( $image ) && ( true == $image[3] || 'full' == $size ) ) $links[] = "<a class="image-size-link" href="{$image[0]}">{$image[1]} × {$image[2]}</a>"; } /* Junta os links em string e mostra. */ return join( ' <span class="sep">/</span> ', $links ); }
Agora que temos a função, só precisamos chamá-la. Você pode precisar criar um arquivo especial para mostrar anexos attachment.php ou para mostrar anexos especial para imagens image.php. Experimente usar o arquivo do tema padrão WordPress se o seu ainda não tem um.
Após o Loop, adicione o código seguinte, você pode mostrar os links antes da imagem por exemplo:
<?php if ( wp_attachment_is_image( get_the_ID() ) ) { ?> <div class="image-meta"> <?php printf( __( 'Tamanhos: %s', 'example-textdomain' ), my_get_image_size_links() ); ?> </div> <?php } ?>
É isso! Mostrando imagens ao estilo Flickr!
