April 2011

WordPress

Thumbnail no WordPress

Esse código é ótimo para quem não salva as imagens do post no próprio servidor quando está fazendo o post.

Copie o código abaixo e cole no functions.php do seu tema:

function my_thumb() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
if ( preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches) ) {
$first_img = $matches[1][0];
}
return $first_img;
}

Agora, onde for chamar o thumbail (seja em posts relacionados, posts recentes..), use o código abaixo:

<?php if (my_thumb()) { /* se tiver imagem no post, usa o codigo abaixo */ ?>
<img src="<?php echo my_thumb(); ?>" width="100" height="100" alt="" border="0">
<?php } else { /* se nao tiver imagem no post, usa o codigo abaixo */ ?>
<img src="<?php bloginfo('template_directory'); ?>/images/thumbnail.jpg" width="100" height="100" alt="" border="0"><?php }?>

Altere no código acima a url da imagem que será usada caso seu post não tenha nenhuma imagem.
O tamanho da imagem é editada também no código acima, onde tem width=”100″ height=”100″.

Ponto negativo de usar esse código
Ele vai pegar a primeira imagem do post com o tamanho original dela. Ou seja, se a imagem do seu post tem 1000 pixels de largura por 1000 pixels de altura, ele vai abrir ela desse tamanho, apenas redimensionada pelo width=”100″ height=”100″. Isso fará o seu site/blog pesar muito quando for abrir. Diferente do outro código de thumbnails que permite você pegar o thumbnail da imagem do post, que já vem “cortada” para um tamanho bem menor, pesando bem menos.
Por isso, não recomendo que use ele se você hospeda suas imagens no próprio servidor enquanto faz o post. Isso é apenas um “salva-vidas” para quem realmente tem que salvar as imagens em um lugar diferente.