Como criar um bloco de destaques no Wordpress
A velocidade de alteração dos artigos que ficam na página inicial do blog é muito grande, o que pode fazer com que artigos que mereçam uma atenção maior acabem se perdendo nas páginas secundárias.
Como nem todo mundo acompanha via feeds, é interessante, deixar uma lista com algumas páginas que você quer destacar sempre visível.
No Wordpres, usando um pouco de PHP é muito simples colocar esta lista no seu blog.
Existem vários plugins que fazem isso de forma automática, a maioria, se baseando na visitação, número de comentários ou outros fatores quaisquer.
Mas acredito que seja melhor que o próprio blogueiro defina uma lista de artigos para deixar destacado.
Primeiro, devemos indicar ao Wordpress quais são os artigos em destaque, depois, basta selecioná-los usando as funções do Wordpress.
Indicando os artigos em destaque
Existem várias maneiras de fazer essa indicação, como por exemplo:
- Custom Fields
- Palavra Destaque
- Categoria
Custom Fields
Usando custom fields, a solução ficaria muito semelhante a solução para ocultar o AdSense em alguns artigos.
Mas existem dois problemas que me fizeram optar por não utilizar o custom fields:
- A seleção dos artigos teria que ser manual, pois não conheço nenhuma função que liste artigos baseados em um custom field e eu prefiro não escrever consultas diretas às tabelas, pois podem dar problema em atualizações de versão.
- Não teria como os leitores verem os destaques anteriores, em função do mesmo problema acima.
Palavra Destaque
Apesar de já ter visto implementações desta natureza, considero ainda pior do que a solução com custom fields, por isso não irei nem abordar como seria.
Categoria
É a maneira mais limpa e prática de criar esta funcionalidade, podemos usar várias funções nativas do Wordpress, sem precisar utilizar consultas diretas, além de já contar com um arquivo para a categoria de destaque.
Para usar, basta criar a categoria destaque e colocar os artigos que devam ficar em destaque na categoria correta e na categoria Destaque.
O único cuidado que deve ser tomado com essa estratégia é para quem usa a categoria para montar o permalink dos artigos.
Quem faz isso, deve criar a categoria Destaque por último, caso não queira que a palavra destaque entre no endereço.
Esse problema acontece, pois o WP usa a categoria de menor ID no endereço, quando um artigo está em mais de uma categoria.
Agora, já temos um arquivo, onde os usuários podem consultar os artigos que foram selecionados como destaque.ordpress.
Criando a lista de artigos

Agora que já informamos ao Wordpress quais são os artigos em destaque, precisamos fazer uma lista para exibir estes artigos.
A solução é bem simples, basta utilizar o código abaixo:
<ul>
<?php
$destaques_posts = get_posts('category=42&numberposts=5'); foreach($destaques_posts as $post) : setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" rel="bookmark" title="Link para <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>

Onde:
- category deve receber o número do ID da categoria que você deseja exibir.
- numberposts deve receber a quantidade de artigos que devem ser exibidos.
Uma coisa importante que deve ser observada é a criação de uma variável para poder receber os artigos, caso contrário, corre o risco de entrar em conflito com o loop principal do Wordpress.
Como o código é um loop completo, pode ser colocado em qualquer lugar do tema que você quiser.
Variações do código
O código acima, é bastante flexível e permite que você possa fazer vários tipos de seleção, usando os parâmetros da função get_posts.
Um uso bastante comum, é a seleção dos últimos artigos do blog.
O código para fazer isso é bastante simples:
<ul>
<?php
$ult_posts = get_posts('numberposts=5'); foreach($ult_posts as $post) : setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" rel="bookmark" title="Link para <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
Basta não fazer qualquer restrição, que você conseguirá a exibição de todos os artigos.
Consulte a página da função para ver outras formas de fazer as restrições.
Algumas idéias, seriam:
- Lista dos últimos artigos por categoria
- Lista dos últimos artigos por autor
- etc...














Sabe que ontem antes de capotar pensei justamente nisso. Então pesei as alternativas e fiquei de pesquisar se havia algum plugin que fizesse o serviço.
Mas colocar como categoria parece uma ótima solução mesmo.
Great Article man!
O get_posts é ótimo mesmo - é a função que uso para gerar a lista de artigos mais recentes, coisa que fazia com plugin antigamente. Só fiquei frustrada quando tentei sem sucesso usar a função para criar uma lista de "artigos na página seguinte", como no blog do Fábio Seixas.
Gostei da idéia das categorias - bem melhor do que deixar que posts tomados por paraquedistas se destaquem sem merecer.
Sugestão:
Como vc mudou o BrPoint para aqui podia criar uma zona só para posts de SEO com essa técnica.
Outra coisa:
O design do blog está espectacular!! só os anúncios do já cotei é que destoam um pouco.
Rafael, obrigado.
Lu, se não me engano, o blog do Fabio usa o MT, que tem funcionalidades diferentes do WP.
Vou tentar pesquisar um pouco para ver se arrumo uma solução mais limpa, mas de cabeça, só consigo pensar em uma consulta direto a base de dados para fazer o que deseja.
Se arrumar uma solução, escrevo o artigo.
Pedro, obrigado pela idéia, farei isso, inclusive, vou tirar os destaques de onde estão, pois estão jogando o conteúdo muito para baixo.
Vou transformar essa solução em um widget do WP para que eu possa usar na barra lateral sem problemas.
Quanto ao Já Cotei, já tenho uma solução planejada para isso, só estou esperando chegar o feriado para poder desenvolver, vou tentar deixar igual aos anúncios do ML.
Abraços
Pois é, Bruno, imaginei que essa relação fosse uma função exclusiva do MT mesmo. Revirei a web atrás de um plugin e nada - aliás, foi a única vez que o WP me deixou na mão.
Lu, pode deixar, que vou procurar uma solução, impossível de fazer não é
Abraço
Muito interessante e informativo, fiquei pensando nisso por muito tempo e num tinha arrumado uma solução ainda.....
vlw....
em falar em programação dentro do wp, sobre a integração de programação e wordpress:
- se eu quiser mostrar valores de um banco de dados meu dentro de uma página (page) do wp , como eu posso puxar? ele não permite o include e não sou programador pra viajar a procura de outra...
outra pergunta..
e se eu quiser colocar a pagina de ultimos relacionadas a um único autor... já tentei mesclar códigos, mas não consigo...
pq o get posts só é voltado para categoria..
e se eu usar o query posts ele mostra o post completo... alguma solução viável?
fisicomaluco, obrigado.
Bernard, você pode criar um template de página para seu tema e chamá-lo quando for criar a página.
Solução existe, vou pesquisar sobre o assunto.
Abraços
[...] escrevi o tutorial de criação de um bloco de destaques, acabei com um pequeno problema na [...]
Esse BrPoint é quase uma wikipédia de blogs.
Eu procuro primeiro aqui, depois no Oráculo, depois em qqer lugar...
Ótimo post!
Anderssauro, obrigado.
Abraço
Quando eu coloquei o código o blog entrou em loop mostrando 10 vezes o mesmo post na home.
Alguem sabe o que aconteceu?!