Jeff Chandler escreveu uma análise no WPCandy do nosso tema Nature Blog há alguns dias. Uma das coisas que ele disse nesta análise foi o seguinte:
Eu não vejo suporte imediato para tags, mas isso é algo que não seria muito difícil de adicionar. No entanto, acho que as tags deveriam ser uma qualidade padrão nos temas hoje em dia, considerando que é tão simples quanto adicionar essa função ao tema.
Concordo plenamente, e desde essa análise tenho tentado garantir que todos os futuros lançamentos do Theme Lab tenham suporte a tags, além de trabalhar no suporte a tags em lançamentos anteriores de temas. Neste guia, ensinarei como adicionar suporte a tags aos seus próprios temas que podem não tê-lo. Como Jeff disse, é realmente "tão simples quanto adicionar essa função ao tema."
O que é uma tag?
Ok, se você não sabe o que é uma tag e qual a diferença entre categoria e tag – leia o artigo Categoria versus Tags em Lorelle on WordPress. Não consigo explicar melhor do que isso, então vá até lá se não tiver certeza.
Listar tags no Loop
A função the_tags() é a função usada para exibir tags dentro de o Loop, semelhante às categorias. Vamos "pegar emprestado" um pouco de código do meu tema favorito de todos os tempos do WordPress, Kubrick (o padrão).
<?php the_tags('Tags: ', ', ', '<br />'); ?>
É um pouco difícil ler os argumentos, mas o primeiro argumento é o que é exibido antes (atualmente Tags:, depois o separador de vírgula (entre cada tag) e, em seguida, o que vem depois – a quebra de linha. Como o código antes e depois está incluído na função, não há necessidade de formatação HTML externa – então nada será exibido se você não tiver tags em uma postagem específica. Para cercar suas tags com uma tag de parágrafo em vez disso, você faria isso:
<?php the_tags('<p>Tags: ', ', ', '</p>'); ?>
Você pode colocar este código onde quer que haja um Loop, seja no seu Modelo de Índice Principal (index.php) ou no Modelo de Postagem Única (single.php).
Adicionando uma nuvem de tags na sua barra lateral
A função wp_tag_cloud é o que exibe a nuvem de tags. Aqui está um exemplo básico de uma nuvem de tags exibida em uma barra lateral.
<?php wp_tag_cloud('smallest=8&largest=22'); ?>
smallest e largest são tamanhos de fonte. Colocar o seguinte código na sua barra lateral produzirá algo como isto.
Claro, você pode diminuir o tamanho da fonte no parâmetro largest se achar que é muito grande. Uma lista completa de parâmetros pode ser encontrada na página wp_tag_cloud no Codex.
Exibir tags como categorias na barra lateral
Eu sei que existem alguns haters de nuvem de tags por aí, então se você quiser exibir tags em formato de lista, você pode adicionar alguns parâmetros à função wp_tag_cloud para fazer isso.
<?php wp_tag_cloud('smallest=10&largest=10&format=list&unit=px'); ?>
Isso fará com que as fontes tenham o mesmo tamanho (10px) e sejam formatadas em uma lista.
Conclusão
Se você prefere tags a categorias, ou em conjunto com categorias e seu tema não o suporta – espero que tenha sido fácil de seguir para você. Me diga nos comentários o que você achou. Obrigado novamente a Jeff pela inspiração para este tutorial.
brilhante. incrivelmente útil. obrigado!
@Hamish: Você provavelmente teria que criar um template tag.php e simplesmente remover tudo do loop, exceto os títulos dos posts.
Leia este tutorial anterior aqui no Theme Lab, pois pode ajudar.
Post incrível!!! Tenho certeza que essa informação será útil.
O que estou tentando fazer é fazer com que o WordPress exiba apenas uma lista de títulos de posts quando você clica em uma tag, em vez dos posts inteiros… Isso está relacionado a isso?
Tudo o que consegui encontrar foi este http://forum2.bytesforall.com/showthread.php?t=351, mas ele não parece relevante para o wordpress 2.7.1, ou para o tema que estou usando, um dos dois!
Obrigado por esta dica maravilhosa. Assim que atualizei para uma versão recente do WordPress, o plugin que funcionava com meu tema atual parou de funcionar para mostrar tags. Fiquei muito desapontado e não consegui encontrar nenhum plugin compatível com a versão do WP. Felizmente, encontrei seu post e isso resolveu meu problema. Obrigado mais uma vez.
@Meredith: Bem, se você quiser que as tags sejam listadas em uma página de post individual, por exemplo, você colocaria o seguinte código no seu arquivo single.php.
<?php the_tags('<p>Tags: ', ', ', '</p>'); ?>Isso exibirá os links para as páginas de tags, que você atribuiu a um post específico no menu de escrita.
É disso que você estava falando?
Acontece que meu tema estava muito desatualizado. Ele mostrava categorias, mas não tags, mesmo com o código adicionado. Não me lembro o que fiz neste momento para fazê-lo funcionar, mas agora está funcionando. Obrigado pela ajuda!
Ainda não descobri como fazer as tags aparecerem no meu blog. Coloquei o código que você listou no lugar apropriado. Estou me perguntando se primeiro preciso adicionar aquela função que você está falando (the_tags()), mas não tenho ideia de onde ou como fazer isso. Qualquer ajuda é bem-vinda.
[...] o tema tem uma barra lateral totalmente com widgets, incluindo barra de pesquisa e um calendário estilizado, além de suporte a tags e suporte a Gravatar de comentários (WordPress 2.5+ [...]
Obrigado por este post e sua explicação simples. Consegui implementá-lo no meu blog. Por favor, veja meu blog como prova.
Valeu, isso ajudou muito. Eu estava procurando uma solução para apenas listar as tags.
<?php the_tags('Tags: ', ', ', ''); ?>
Coloquei isso no meu blog e parece que funciona, vejo minhas tags, clico nelas e vou para outras seções do site, o que é ótimo, mas muitas das minhas tags não funcionam e vão para a página 404 do blog, dizendo que o termo de pesquisa não foi encontrado? Alguma ideia?
Estou interessado em mudar a palavra 'Tags' para uma imagem, mas tenho lutado para acertar a sintaxe. Atualmente, mudei para isto, mas uma vírgula exibe antes da primeira tag.
Código original:
<?php the_tags('<p>Tags: ', ', ', '</p>'); ?>Novo código – 1ª tentativa (gera um erro de análise):
<?php the_tags('<p><img alt="Tags" src="', get_bloginfo('stylesheet_directory')',/images/icon-tags.gif" /> ', ', ', '</p>'); ?>Novo código – 2ª tentativa (tem vírgula antes da 1ª tag):
<p><img alt="Tags" src="<?php echo get_bloginfo('stylesheet_directory') ?>/images/icon-tags.gif" /> <?php the_tags(', ') ?></p>Acho que a primeira maneira que tentei é a melhor maneira de escrever o código, no entanto, parece que minha sintaxe está incorreta para o src da imagem (por exemplo, não estou escapando corretamente para dentro e para fora do php). Qualquer ajuda seria muito apreciada.
Saudações,
Brian
Você conseguiu alguma coisa com isso, Brian? Tenho o mesmo problema.
@Nora: O que exatamente não funcionou?
não funcionou comigo 🙁
EI MAN! obrigado pelas postagens…
ambas as suas postagens sobre gravatar e esta realmente me ajudaram a resolver meu problema com o novo tema que criei..
MUITO BOM!
Obrigado por postar instruções fáceis para nós, "haters de nuvem de tags". 🙂
[…] aqui no Theme Lab, incluindo suporte Gravatar para comentários, uma barra lateral pronta para widgets e suporte nativo de tags do WordPress. Este tema também está pronto para anúncios de 125×125, que podem ser editados através do sidebar.php […]
[…] Este tem todos os recursos usuais, incluindo suporte nativo Gravatar (apenas WordPress 2.5+), suporte de tags e uma barra lateral pronta para widgets. Ele também tem um modelo especial de página inicial com 3 áreas para colocar seus […]
Obrigado! Eu não conseguia fazer uma nuvem de tags aparecer no meu tema e isso era extremamente frustrante. Depois de ler este post, consegui fazer funcionar!
@Menno: Não tenho certeza se as categorias e tags podem ser combinadas. Pode haver um plugin que possa fazer isso – mas não tenho certeza.
E aí Leland, ótimo trabalho. Você também sabe como adicionar categorias dentro do código de uma nuvem de tags?
Eu uso este código:
E gostaria de mostrar todas as categorias também.
Obrigado desde já!
Existe alguma maneira de adicionar tags a "comentários" enviados – (não a posts ou páginas)?
Obrigado
@Sue: Não acredito que essa funcionalidade esteja presente no WordPress. Pode haver algum plugin que faça isso, mas não conheço nenhum.
Obrigado Jeff, fico feliz que tenha gostado.
Incrível, fico feliz em ver você aceitando a oferta. Agora, para conseguir pessoas a bordo para suporte de impressão integrado com esses temas. Aliás, bom trabalho nas várias explicações descritas acima.
Obrigado Adam!
Você tem um talento para explicações claras e concisas! Ótimo post:)