WordPress 2.9: como usar miniaturas nos posts?

02-05-2010 00:07

A versão 2.9 do WordPress introduziu uma funcionalidade que a meu ver é básica e já era amplamente utilizada, mas sem padronização. Cada desenvolvedor fazia à sua própria maneira: miniaturas para os posts.

Mas onde estão as ferramentas para usar thumbnails? Já procurei na página de edição dos posts, em Mídia e nada! Pois é, precisamos inicializar isso, informar ao sistema que desejamos utilizar essas funções. Para isso basta incluir o seguinte código ao arquivo functions.php do seu tema:

add_theme_support(‘post-thumbnails’);

Se quiser restringir a posts ou páginas apenas, faça assim:

add_theme_support(‘post-thumbnails’, array(‘post’));
// adiciona as func. só para os posts add_theme_support(‘post-thumbnails’, array(‘page’));
// adiciona as func. só para as páginas

Um detalhe importante a ser lembrado é que o suporte a miniaturas foi introduzido na versão 2.9 e, se você está construindo um tema público, talvez fosse uma boa idéia preservar a compatibilidade com versões anteriores, assim:

if(function_exists(‘add_theme_support’))
{
add_theme_support(‘post-thumbnails’);
// naturalmente, toda a atividade com thumbnails deve acontecer aqui dentro
// ou após um teste pela existência da função ‘add_theme_support’ (ou outra que seja apenas do 2.9)
}

Ok, a primeira mudança óbvia é a caixa ‘Miniatura do post’ que aparece na interface de criação/edição de posts e páginas (‘Imagem da página’). Clicando em ‘Configurar miniatura’ abrimos a interface de upload de arquivos e o processo é exatamente o mesmo. Você pode subir imagens de qualquer tamanho até os limites configurados no sistema. Mas um thumbnail não devia ser pequeno? Bem, não necessariamente… mas podemos definir o tamanho de exibição da imagem:

set_post_thumbnail_size(40, 40, true);

Isso irá definir o tamanho padrão para thumbnails e quando chamarmos a função the_post_thumbnail() uma imagem de 40×40 pixels será exibida. Mas ainda há outras possibilidades e podemos trabalhar com diversos tamanhos de thumbnails para diferentes situações.

Seria comum desejar um tamanho pequeno para as listagens de posts e um maior para a página do post. O mais simples seria usar os tamanhos padrão do WP, que podemos configurar na página de opções (…)/wp-admin/options.php. São os mesmos tamanhos que a janela de upload nos mostra logo após subirmos uma imagem. Para isso podemos usar uma das palavras ’small’, ‘medium’ ou ‘large’ como parâmetro e o sistema vai exibir a imagem no tamanho solicitado.

the_post_thumbnail(“small”);
the_post_thumbnail(“medium”);
the_post_thumbnail(“large”);

E há ainda a possibilidade de passar as especificações da medida desejada num array (larg., alt.):

the_post_thumbnail(array(80, 120));

Ok, bem legal não? Mas ainda há outro modo, que me parece mais elegante. As palavras ’small’, ‘medium’ e ‘large’ são identificadores registrados no sistema e podemos definir nossos próprios identificadores! Veja:

add_image_size(‘post-thumb’, 350, 800, true);
// identificador, largura máx., altura máx., cortar? // para posts
add_image_size(‘page-thumb’, 600, 1200, false);
// para páginas

Então poderemos usar dessa forma:

the_post_thumbnail(“post-thumb”);
the_post_thumbnail(“page-thumb”);

Bem bacana não? Chega de hacks! miniaturas nos posts é algo básico e que já demorou muito pra acontecer!