Thumbnail sem custom fields e plugins 08 Feb 2010

File under: Tutorials

Finalmente um código que funciona e não precisa ficar digitando nada no custom field do seu post no wordpress, inclusive estou usando no blog.

Pra quem não sabe, esse código é pra mostrar uma miniatura da imagem no seu post. Se clicar em uma das tags ou categorias aqui no blog, verá um exemplo do que estou dizendo.

Salve o código abaixo no functions.php do seu tema:

// thumbnail in posts
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='{$post_title}' {$add} />";
 }
 else {
   print "<img src='http://seusite.org/images/thumb-default.jpg' alt='{$post_title}' {$add} />";
 }
}

E no index.php do seu tema (ou no arquivo desejado, desde que seja onde tem o código que gera o post), adicione um dos código abaixo:

Pra usar o thumbnail que é gerado pelo próprio wordpress:

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

Se quiser colocar alguma configuração de css, largura e altura:

<?php the_thumb('thumbnail', 'class="alignleft" width="120" height="90"'); ?>

Se você quiser, pode usar a imagem "medium" gerada pelo wordpress. Só trocar o nome thumbnail no código acima por medium.

Esse código pega a primeira imagem do post, mas não necessariamente a imagem usada no post. É que quando você faz upload de imagens na hora que está postando, ele pega pela ordem de upload. E isso também significa que você não é obrigado a usar imagens pra que ela apareça ali. Só faz o upload dela enquanto estiver postando, mas não insere no post. E caso não tenha uma imagem, ele pega a default (altere a url no código que vai no functions.php).

Eu vi esse código no blog do Marcelo Mesquita e só adicionei no final do código o else pra mostrar uma imagem caso o post não tenha nenhuma.


17 Responses to “Thumbnail sem custom fields e plugins”

  1. 8.2.2010 at 18:58

    Oi, Dani.
    Só dê uma acertada no código que printa o , pois ele está errado. As aspas após o "alt=" não estão fechando corretamente.
    Imagino que você quisesse colocar alt=", e não alt=", pela lógica da função.
    []s

    • 8.2.2010 at 19:11

      Eu estava usando aspas simples, mas agora percebi que depois que publiquei o post, ele interpretou como aspas duplas.

      Já arrumei lá.

  2. 10.2.2010 at 00:27

    Ai que bom e o pior que é um código difícil de se achar.

  3. 14.2.2010 at 00:40

    A muito tempo eu peguei um theme base seu para wordpress e modifiquei mas não me lembro de etr agradecida. Então, obrigada por um dia ter disponibilizado pois meu layout original é lindo e como não sei fazer do zero foi fundamental para que eu pudesse fazer e acontecer lá: http://www.simbologiamaldita.com

  4. 14.2.2010 at 18:19

    Dani..estou adorando todos os conteúdos q tem colocado no seu blog!! Adoreiii!

    Olha só…adorei o Random na sua sidebar de seus posts…Isto é um plugin? Como faço pra fazer isso tbm?

    E O related posts seu? Apaixonei…Tipo, ele parece um linkwithin! É um plugin? como posso ter esse tbm no blog…

    Desde já agradeço se puder dar as dicas…!

    • 14.2.2010 at 20:14

      Assim que der, faço tutorial dos dois ;)

  5. 21.2.2010 at 19:20

    Pra esse código funcionar as imagens precisam estar hospedadas no meu servidor?

    • Dani
      21.2.2010 at 19:35

      Sim. Tem explicando lá no tutorial de thumbnails.

  6. 26.2.2010 at 11:19

    Deu erro quando tentei. Diz que tem um erro na linha 69 do meu functions.php

    • Dani
      26.2.2010 at 11:37

      O que mais vc tem no seu functions.php? Esse código aí não dá 69 linhas. Vê qual código está na linha 69 dele.

      • 26.2.2010 at 14:24

        Eu consegui, estava lendo seu tutorial do arquivo e vi onde estava errando. Obrigada!

  7. Sandra
    3.3.2010 at 11:47

    Já tentei umas 3 vezes fazer esse tutrial e da este erro .

    • Dani
      3.3.2010 at 11:53

      Qual erro que dá?

      ps: não cole o código aqui porque ele n mostra tudo, cole apenas o erro que gerou.

  8. Sandra
    3.3.2010 at 12:01

    ha ta . ele fica aparecendo no topo do site o codigo .

    • Dani
      3.3.2010 at 12:27

      Você criou um arquivo functions.php e colocou na pasta do tema? Daí adicionou o código lá e o outro onde quer que apareça?

      E isso é pra wordpress instalado em servidor próprio, não é pra wordpress.com

  9. Sandro
    3.3.2010 at 13:37

    Criei o arquivo functions.php e coloquei na pasta do tema, e o wordpress esta instalado num servidor proprio sim.

    • Dani
      3.3.2010 at 15:07

      Mas não aparece um erro, tipo "erro na linha tal" ? Ou "erro 500" ?
      Só aparecer o código no topo do layout eu não sei te dizer o que fazer. Eu já fiz isso várias vezes aqui e nunca tive erro assim.

 

Leave a Reply






 

Powered by Wordpress and Pre Lude      Valid CSS and Valid Xhtml
Sinopse © 2006-2010