Back-End

2 dez, 2009

Inserindo imagens nas chamadas de posts

Publicidade

Desde quando comecei a trabalhar com WP, a funcionalidade mais
requisitada foi sempre inserir uma imagem nas chamadas dos posts. Para
isso criei uma função que puxa, do banco de dados, a primeira imagem de
um post. A partir da versão 2.6 do WP, ordenar as imagens do
post se tornou possível através de um drag’n drop nas opções de galeria. Assim, basta arrastar para a primeira posição a
imagem que quer usar. Essa imagem não precisa necessariamente estar
no conteúdo do post, apenas ter sido anexada a ele.

Para utilizar essa função, abra o arquivo functions.php do seu tema, e depois cole o código abaixo.

function the_thumb($size = "medium", $add = "")
{
global $wpdb, $post;

$thumb = $wpdb->get_row("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_parent = {$post->ID} AND post_mime_type LIKE 'image%' ORDER BY menu_order");

if(!empty($thumb))
{
$image = image_downsize($thumb->ID, $size);

print "<img src='{$image[0]}' alt='{$thumb->post_title}' {$add} />";
}
}

Essa função funciona como uma template tag
do WordPress, basta chamá-la no local do seu tema onde você quer que a
imagem apareça, opcionalmente você pode escolher o tamanho da imagem
($size) e adicionar alguns parâmetros à tag da imagem ($add), como
classes, largura, altura, etc.

Acho que é mais fácil mostrando uns exemplos.

1. Mostrar a imagem no tamanho médio (padrão 300 x 300) sem nenhum dado adicional:

<?php the_thumb('medium'); ?>

Resultaria em:

<img src='http://seusite.com/caminho/da/imagem-300x300.jpg' alt='titulo-da-imagem' />

2. Carregar uma miniatura da imagem (padrão 150 x 150) com a classe ‘alignleft’:

<?php the_thumb('thumbnail', 'class="alignleft"'); ?>

Retornaria:

<img src='http://seusite.com/caminho/da/imagem-150x150.jpg' alt='titulo-da-imagem' class='alignleft' />

3. Forçar uma imagem média a um tamanho diferente:

<?php the_thumb('medium', 'width="300" height="275"'); ?>

Apresentaria:

<img src='http://seusite.com/caminho/da/imagem-300x300.jpg' alt='titulo-da-imagem' width='300' height='275' />

Notem que forçando um tamanho para uma imagem apenas altera seu
tamanho via html, o que pode distorcer a imagem se não for usado
proporcionalmente.

Também é importante lembrar que é possível definir o tamanho das
imagens nas configurações do WordPress. Para isso vá em ‘Configurações
> Mídia’ e altere as medidas a seu gosto.

Esses dias vi um artigo no wprecipes que mostrava como pegar a primeira imagem de um post e mostrá-la,
o problema da função deles é que ela exige que a imagem esteja no
conteúdo do post, o que muitas vezes não é interessante, primeiro porque força o autor a usar uma imagem no conteúdo e, segundo, porque a imagem
que aparece na chamada tem sempre que ser a primeira que aparece no
post.

Até a próxima!