<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Comunidade WordPress-BR &#187; sticky posts</title>
	<atom:link href="http://wp-brasil.org/tag/sticky-posts/feed" rel="self" type="application/rss+xml" />
	<link>http://wp-brasil.org</link>
	<description>Site da Comunidade Brasileira de WordPress</description>
	<lastBuildDate>Wed, 09 May 2012 21:15:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fazendo melhor uso dos sticky posts</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/fazendo-melhor-uso-dos-sticky-posts</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/fazendo-melhor-uso-dos-sticky-posts#comments</comments>
		<pubDate>Thu, 26 Mar 2009 17:15:08 +0000</pubDate>
		<dc:creator>Eduardo Zulian</dc:creator>
				<category><![CDATA[Dicas e Tutoriais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[intermediário]]></category>
		<category><![CDATA[sticky posts]]></category>

		<guid isPermaLink="false">http://wp-brasil.org/?p=456</guid>
		<description><![CDATA[Com os sticky posts, é possível fixar posts antigos acima da cadeia cronológica natural do blog. Veja algumas dicas para tirar melhor proveito dessa nova funcionalidade.]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<h4>Fixando o post</h4>
<p>Basta você criar um novo post ou editar um antigo e marcar a opção <em>Fixar este post na página inicial</em> 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.</p>
<h4>Estilizando o post</h4>
<p>Como a <a href="http://wp-brasil.org/dicas-e-tutoriais/aplicando-estilos-aos-posts-com-a-funcao-post_class">Cátia já escreveu em seu texto sobre o post_class()</a>, 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:</p>
<pre class="brush: html">&lt;div id=&quot;destaques&quot; class=&quot;post sticky hentry category-i&quot;&gt;</pre>
<p>Agora, é só declarar a classe sticky no seu arquivo CSS e estilizá-la como bem entender.</p>
<h4>A tag condicional is_sticky()</h4>
<p>Sendo redundante, a função <code>is_sticky()</code>, se usada dentro do <a href="http://codex.wordpress.org/The_Loop">The Loop</a>, vai retornar verdadeiro caso o post tenha sido marcado como sticky. É, simples assim.</p>
<pre class="brush: php">&lt;?php if (is_sticky()) echo &#039;Este é um sticky post&#039;; ?&gt;</pre>
<p>Caso você precise saber se tal post é um sticky, basta colocar a ID do post desejado como parâmetro da função:</p>
<pre class="brush: php">&lt;?php if (is_sticky(&#039;33&#039;)) echo &#039;Esse é um sticky post também&#039;; ?&gt;</pre>
<h4>Ignorando sticky posts</h4>
<p>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 <code>caller_get_posts=1</code> dentro da query:</p>
<pre class="brush: php">&lt;?php query_posts(&#039;caller_get_posts=1&#039;); ?&gt;</pre>
<h4>Retirando ou mostrando apenas os sticky posts na query</h4>
<p>Não há muito o que explicar. Caso você não queira que a sua query mostre os posts marcados como sticky, faça:</p>
<pre class="brush: php">&lt;?php $sticky = get_option(&#039;sticky_posts&#039;) ; ?&gt;
&lt;?php query_posts(array(&#039;post__not_in&#039; =&gt; $sticky)); ?&gt;</pre>
<p>Agora, se a idéia e mostrar apenas aqueles posts marcados, use o parâmetro <code>post__in</code>:</p>
<pre class="brush: php">&lt;?php $sticky = get_option(&#039;sticky_posts&#039;) ; ?&gt;
&lt;?php query_posts(array(&#039;post__in&#039; =&gt; $sticky)); ?&gt;</pre>
<h4>Mostrando apenas um sticky post no topo da página</h4>
<p>Por padrão, o <code>query_posts()</code> traz todos os posts fixados para o topo. Se você quiser apenas um desses posts no topo, isso pode ser feito da seguinte maneira:</p>
<pre class="brush: php"> &lt;?php $sticky = get_option(&#039;sticky_posts&#039;); ?&gt;
&lt;?php query_posts(&#039;p=&#039; . $sticky[0]); ?&gt;</pre>
<p>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 <code>array_reverse()</code> para que assim a primeira ocorrência seja, na verdade, o último sticky post.</p>
<pre class="brush: php">&lt;?php $sticky = get_option(&#039;sticky_posts&#039;); ?&gt;
&lt;?php $sticky = array_reverse($sticky); ?&gt;
&lt;?php query_posts(&#039;p=&#039; . $sticky[0]); ?&gt;</pre>
<p>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 <a href="http://www.google.com/search?btnG=1&amp;q=sticky+posts+wordpress">outros já escritos</a>, mas ei, é mais uma referência. E sugestões, claro, são mais do que apreciadas.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/fazendo-melhor-uso-dos-sticky-posts/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>

