| Login

Comunidade WordPress-BR

Mapa do Site | RSS

Dicas e Tutoriais

Fazendo melhor uso dos sticky posts

quinta-feira, 26/03/2009 às 14:15

Com a chegada do WordPress 2.7, a plataforma mostrou algumas boas novidades. Como todo mundo já deve saber disso, dispensarei grandes apresentações. Bem, dentre tais novidades, a que chamou bastante atenção foi a chamada sticky posts/posts fixos, que nada mais são do que posts que você pode manter fixos na página inicial e, principalmente, no topo do seu blog/site, se assim quiser. Ainda acho que a funcionalidade é muito básica, mas tais considerações eu deixo para um próximo texto. Por enquanto, a idéia é tentar detalhar um pouco as vantagens que a interessante novidade (não mais tão novidade, mas tudo bem) pode trazer para o seu site.

Fixando o post

Basta você criar um novo post ou editar um antigo e marcar a opção Fixar este post na página inicial no painel Publicar e pronto, seu post será o primeiro da lista. Caso deseje usar a funcionalidade para mais de um post, sem problemas. O WordPress jogará todos os posts marcados como sticky/fixo pro topo do seu site. Só atenção: a ordem dos posts respeitará a ordem que foi usada para marcá-los. O último post fixado vai ser sempre o primeiro da fila, independente da data dos outros. E que fique claro, os posts continuam na ordem cronológica. Se você desmarcar a opção de fixar o post, ele simplesmente não aparecerá mais no topo das postagens.

Estilizando o post

Como a Cátia já escreveu em seu texto sobre o post_class(), o WordPress agora cria, através dessa função, várias classes para o post. E claro, era de se esperar que uma classe sticky fosse atribuída caso o post estivesse marcado assim. A minha estrutura ficou assim:

<div id="destaques" class="post sticky hentry category-i">

Agora, é só declarar a classe sticky no seu arquivo CSS e estilizá-la como bem entender.

A tag condicional is_sticky()

Sendo redundante, a função is_sticky(), se usada dentro do The Loop, vai retornar verdadeiro caso o post tenha sido marcado como sticky. É, simples assim.

<?php if (is_sticky()) echo 'Este é um sticky post'; ?>

Caso você precise saber se tal post é um sticky, basta colocar a ID do post desejado como parâmetro da função:

<?php if (is_sticky('33')) echo 'Esse é um sticky post também'; ?>

Ignorando sticky posts

Provavelmente você não vai querer que os posts fiquem fixos em todas as áreas do seu site, principalmente se você executa várias queries dentro do mesmo arquivo. Para ignorar os sticky posts e mantê-los na ordem cronológica, faça uso do parâmetro caller_get_posts=1 dentro da query:

<?php query_posts('caller_get_posts=1'); ?>

Retirando ou mostrando apenas os sticky posts na query

Não há muito o que explicar. Caso você não queira que a sua query mostre os posts marcados como sticky, faça:

<?php $sticky = get_option('sticky_posts') ; ?>
<?php query_posts(array('post__not_in' => $sticky)); ?>

Agora, se a idéia e mostrar apenas aqueles posts marcados, use o parâmetro post__in:

<?php $sticky = get_option('sticky_posts') ; ?>
<?php query_posts(array('post__in' => $sticky)); ?>

Mostrando apenas um sticky post no topo da página

Por padrão, o query_posts() traz todos os posts fixados para o topo. Se você quiser apenas um desses posts no topo, isso pode ser feito da seguinte maneira:

 <?php $sticky = get_option('sticky_posts'); ?>
<?php query_posts('p=' . $sticky[0]); ?>

Essa query é perfeita para blogs que possuam espaço para um post destaque. Porém, ela traz o primeiro post marcado como sticky (é, o primeiro de todos), o que não me parece uma solução muito interessante. Para que a query retorne o último post fixado, apenas adicione a função array_reverse() para que assim a primeira ocorrência seja, na verdade, o último sticky post.

<?php $sticky = get_option('sticky_posts'); ?>
<?php $sticky = array_reverse($sticky); ?>
<?php query_posts('p=' . $sticky[0]); ?>

E é isso. Resumidamente, estão aí todos (ou quase todos) os principais detalhes sobre sticky posts. É bem possível que este artigo não tenha mostrado nenhuma novidade perto de outros já escritos, mas ei, é mais uma referência. E sugestões, claro, são mais do que apreciadas.

Publicado por Eduardo Zulian em Dicas e TutoriaisTutoriais
Compartilhe: DiggDel.icio.usBlogBlogs
Tags:

Avalie esse post:

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (4 votos, média: 5,00 de 5)
Loading ... Loading ...
16 comentários | Comente »
Deixe seu comentário |

« Anterior

Próximo »

WordPress-BR é orgulhosamente produzido com WordPress | Reportar erro | Créditos e Condições de Uso

Código é poesia