Se você utiliza miniaturas (thumbnails) linkadas ao arquivo original, quando alguém clica para ver a versão maior, ela abre em uma página em branco, como o exemplo abaixo. Nele foi usada a opção "thumbnail link to file".
A configuração usada foi essa:
A mesma imagem poderia ser exibida de outra maneira, usando a opção "link to page":
Nessa opção, você pode determinar o título e a descrição que aparecerão junto da foto. Basta preencher os dados ao fazer o upload.
Essa função faz uso do template attachment.php. Nem todos os temas trazem esse template, mas é fácil criá-lo ou personalizar o que já existe, acrescentando anúncios diferentes ou o que você quiser.
No exemplo que utilizei, foram removidos os comentários e modificada a exibição dos anúncios.
1. Copie seu arquivo single.php e cole-o em um editor de textos. O bloco de notas serve bem para isso.
2. Localize o seguinte código, logo no início do template:
<?php
if(have_posts()) :
while(have_posts()) : the_post();?>
Logo abaixo, copie e cole essas linhas:
<?php $attachment_link = get_the_attachment_link($post->ID, true, array(470, 800)); // This also populates the iconsize for the next line ?>
<?php $_post = &get_post($post->ID); $classname = ($_post->iconsize[0] <= 160 ? 'small' : ") . 'attachment'; // This lets us style narrow icons specially ?>
São elas que vão determinar os parâmetros para a exibição da imagem.
Os números em vermelho limitam a largura e a altura máximas na hora da exibição, evitando quebrar seu layout. O valor mais importante é a largura, que não deve ser maior do que a largura máxima da sua área de conteúdo. Você encontra esse valor no style.css do seu tema.
3. Agora, localize a tag do título do post, ela geralmente fica entre tags h2 ou h1:
<h1 class="post-title"><?php the_title(); ?></h1>
Substitua a tag do título por essa:
<?php the_title_attribute(); ?>
Vai ficar assim:
<h1 class="post-title"><?php the_title_attribute(); ?></h1>
Com isso, o título que você escolheu para a imagem será o título da página onde ela será exibida.
4. Por último, localize esse código:
<div class="entry">
<?php the_content(); ?>
Obviamente, "entry" vai variar, pode se chamar "content" ou qualquer outra coisa. Logo acima, cole essas linhas:
<p class="<?php echo $classname; ?>"><?php echo $attachment_link; ?><br /><?php echo basename($post->guid); ?></p>
São elas que vão gerar a exibição da imagem, utilizando os parâmetros que você determinou.
O conteúdo será a descrição que você digitou, podendo ser qualquer coisa, desde o nome da imagem até um texto.
Modifique o que julgar necessário. Se você não quer comentários na foto, basta remover a tag <?php comments_template(); ?>, assim como o div que personaliza a mesma, se for o caso.
5. Salve o arquivo como "attachment.php" e envie para a pasta do seu tema.
Para testar, faça upload de uma imagem qualquer e configure como mostrado acima, não esqueça que o tipo de link deve ser "link to page". Escreva o título e a descrição e salve.
Ao dar um "preview" no post, já será possível ver o efeito.
Qualquer dúvida, basta deixar um comentário.
ops… corrigi um erro gravissimo: Seu blog não estava no meu feed. Agora tudo está devidamente em seu lugar
Abraços!
PS: Agora que estou tentando entender em um intensivo o agáteemeelês para tentar um lugarzinho na Efigênia, toda ajuda é bem vinda e este post deu aquela mão!
Noronha,
grande ajuda! Estava procurando realmente por isso.
Vou desabilitar o plugin lightbox que anda comendo cpu e procurava algo interessante para as imagens…
abraço
Muito bom. Mas tenho uma dúvida que talvez interesse:
Sabemos que a média dos internautas não sabe navegar a contento. E se o cara clicar na imagem e quiser ler o resto do texto, e por acaso "esquecer" que existe o botão voltar no browser. Não seria conveniente colocar um "VOLTAR" abaixo da imagem ou algo assim? Poderia ser feito em PHP?
Abraços a todos
Ei! Muito bom isso. É o que eu chamo de raspar o tacho. No longo prazo, pode garantir uns bons trocados a mais…
Acho que tem algo de errado com esse trecho: ID, true, array(470, 800)); // This also populates the iconsize for the next line ?>
ID); $classname = ($_post->iconsize[0]
Bacana a dica, noronha!
Mas para quem tem problemas com processamento, no caso do Norberto, não ajudaria muito, visto que ele vai carregar toda uma leva de arquivos também (footer, sidebar, header, etc..)