<?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>LeoBaiano.com &#187; wordpress</title>
	<atom:link href="http://www.leobaiano.com/categorias/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leobaiano.com</link>
	<description>Internet, Blogs, Monetização e Diversão</description>
	<lastBuildDate>Mon, 09 Jan 2012 19:10:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	
<a name='top'></a>
	<item>
		<title>Utilizando o filtro post_where do WordPress</title>
		<link>http://www.leobaiano.com/utilizando-o-filtro-post_where-do-wordpress.html</link>
		<comments>http://www.leobaiano.com/utilizando-o-filtro-post_where-do-wordpress.html#comments</comments>
		<pubDate>Wed, 05 Oct 2011 23:20:02 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=757</guid>
		<description><![CDATA[Estava trabalhando em um projeto que usa o WordPress como gerenciador de conteúdo e enquanto buscava uma luz para resolver um problema descobri o filtro post_where. O filtro post_where do WordPress serve para alterar a cláusula WHERE da consulta que é enviada ao banco de dados, somando-a aos if&#8217;s e is_ da vida é possível [...]]]></description>
			<content:encoded><![CDATA[<p>Estava trabalhando em um projeto que usa o WordPress como gerenciador de conteúdo e enquanto buscava uma luz para resolver um problema descobri o filtro <code>post_where</code>. O filtro <code>post_where</code> do WordPress serve para alterar a cláusula <code>WHERE</code> da consulta que é enviada ao banco de dados, somando-a aos if&#8217;s e is_ da vida é possível fazer uma porrada de coisa, vamos ver um exemplo.</p>
<h2>Revista digital priorizando assinantes</h2>
<p>Você vai desenvolver uma revista digital, não pretende cobrar para liberar acesso ao conteúdo, porém deseja incentivar os visitantes a se cadastrarem fornecendo o conteúdo antecipadamente, ou seja, usuários não cadastrados só terão acesso ao conteúdo 5 dias depois de publicado, enquanto os usuários cadastrados terão acesso imediato.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> post_delay<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$where</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_admin<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> current_user_can<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'read'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$where</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$dias</span> <span style="color: #339933;">=</span>  <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$dias</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'gmt_offset'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dias</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">24</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$where</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; AND post_date &lt; '&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Y-m-d H:i:s'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$dias</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$where</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'posts_where'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post_delay'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Com a função acima apenas administradores e usuários com privilégio mínimo de leitura poderão ver os posts logo após publicado, os outros só após 5 dias.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/utilizando-o-filtro-post_where-do-wordpress.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Incluindo link/ atalho para editar posts no seu tema WordPress</title>
		<link>http://www.leobaiano.com/incluindo-link-atalho-para-editar-posts-no-seu-tema-wordpress.html</link>
		<comments>http://www.leobaiano.com/incluindo-link-atalho-para-editar-posts-no-seu-tema-wordpress.html#comments</comments>
		<pubDate>Thu, 09 Jun 2011 23:26:28 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[Desenvolvimento WEB]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=739</guid>
		<description><![CDATA[Hoje um cliente me perguntou se seria possível incluir um link para editar um post nas páginas do site dele. O motivo é simples, tanto quanto a solução, as vezes estamos visitando nosso site e nos deparamos com um erro de digitação ou algo que precisa ser corrigido no texto, entrar na página administrativa, procurar [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje um cliente me perguntou se seria possível incluir um link para editar um post nas páginas do site dele. O motivo é simples, tanto quanto a solução, as vezes estamos visitando nosso site e nos deparamos com um erro de digitação ou algo que precisa ser corrigido no texto, entrar na página administrativa, procurar o post e editar não é das tarefas mais difíceis do mundo, mas estamos aqui pra facilitar a vida do cliente, então porque não gerar um link que leve o cliente diretamente para a página de edição do post?</p>
<p>Se eu criasse o link no tema, sem nenhum tipo de deste, este apareceria para todos os visitantes. Alguns podem dizer que não seria um problema visto que se alguém não logado no WordPress clicar no link editar não conseguirá porque o WP vai checar que este não esta logado e negará o acesso.</p>
<p>Ok, do ponto de vista técnico realmente não teria problema, mas em termos visuais e estratégicos não é interessante mostrar o link editar para os visitantes, então antes de exibir o link é necessário verificar se o usuário esta logado, para isto usei o método <code>is_user_logged_in()</code> que serve para testar se o usuário esta logado.</p>
<p>O código ficou mais ou menos assim:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_user_logged_in<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>/wp-admin/edit.php?p=&lt; ?php the_ID(); ?&gt;&quot;&gt;Edit Post&lt;/a&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
}</pre></div></div>

<p>Este código deve ser utilizado dentro do loop.</p>
<p>No meu projeto o link deveria aparecer para qualquer usuário, então checar se o usuário esta logado é suficiente, mas no projeto de vocês pode haver a necessidade de restringir a exibição apenas para usuários de determinados grupos, se for o caso sugiro a utilização do método <code>current_user_can();</code>.</p>
<p>O método <code>current_user_can()</code> serve para checar se o usuário logado faz parte de determinado grupo de usuários. Os grupos basicamente são:</p>
<ul>
<li>administrator</li>
<li>editor</li>
<li>contributor</li>
<li>subscriber</li>
</ul>
<p>Se você quiser que apenas usuários do grupo administradores vejam o link altere o código para:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>current_user_can<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'administrator'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>/wp-admin/edit.php?p=&lt; ?php the_ID(); ?&gt;&quot;&gt;Edit Post&lt;/a&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
}</pre></div></div>

<p>O bacana é que essa é uma dica simples, facilita bastante a vida do usuário e, de quebra, trabalha com 2 métodos extremamente úteis do WordPress, em diversas situações você vai precisar verificar se o usuário esta logado ou se faz parte de determinado grupo.</p>
<p>Até mais pessoal, o que acharam da dica? Pretendo escrever mais dicas para desenvolvimento WordPress, é do interesse? Que tipo de conteúdo, nesta linha, vocês esperam?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/incluindo-link-atalho-para-editar-posts-no-seu-tema-wordpress.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como exibir o total de posts &#8211; WordPress</title>
		<link>http://www.leobaiano.com/como-exibir-o-total-de-posts-wordpress.html</link>
		<comments>http://www.leobaiano.com/como-exibir-o-total-de-posts-wordpress.html#comments</comments>
		<pubDate>Thu, 14 Apr 2011 18:52:52 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[Filha]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=730</guid>
		<description><![CDATA[Sei que já faz tempo que não apareço por aqui, estou trabalhando em dois lugares agora e em um deles já cheguei a virar a noite, também vieram alguns problemas de saúde e o resultado final disso tudo foi o abandono do blog. Neste post quero mostrar como exibir o número total de posts retornados [...]]]></description>
			<content:encoded><![CDATA[<p>Sei que já faz tempo que não apareço por aqui, estou trabalhando em dois lugares agora e em um deles já cheguei a virar a noite, também vieram alguns problemas de saúde e o resultado final disso tudo foi o abandono do blog.</p>
<p>Neste post quero mostrar como exibir o número total de posts retornados no query_posts do <strong>WordPress</strong>, pode parecer bobo mas saber o total de posts é util em diversas ocasiões.</p>
<h2>Exibindo o total de posts</h2>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_count</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Até a próxima pessoal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/como-exibir-o-total-de-posts-wordpress.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Removendo links das páginas mãe</title>
		<link>http://www.leobaiano.com/removendo-links-das-paginas-mae.html</link>
		<comments>http://www.leobaiano.com/removendo-links-das-paginas-mae.html#comments</comments>
		<pubDate>Fri, 20 Aug 2010 13:43:50 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[Desenvolvimento WEB]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp_list_pages()]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=687</guid>
		<description><![CDATA[É muito fácil listar as páginas do seu site WordPress para criar um menu, para tanto basta utilizar o método wp_list_pages(); e estilizar, com CSS, da forma desejada. A coisa complica um pouco quando precisamos fazer aqueles menus drop down, onde a página mãe é listada no menu e ao passar o mouse por cima [...]]]></description>
			<content:encoded><![CDATA[<p>É muito fácil listar as páginas do seu site WordPress para criar um menu, para tanto basta utilizar o método <code>wp_list_pages();</code> e estilizar, com CSS, da forma desejada. A coisa complica um pouco quando precisamos fazer aqueles menus drop down, onde a página mãe é listada no menu e ao passar o mouse por cima as páginas filho aparecem.</p>
<p>O <code>wp_list_pages();</code> retorna a listagem de páginas com um código semântico que facilita a criação do menu drop down, mas a página pai continua com link para a página e na verdade o ideal é que a página pai não seja um link, afinal, provavelmente, a idéia dela é apenas categorizar as seções do site e não deve haver conteúdo algum.</p>
<p>Para resolver este problema você pode adicionar a função abaixo no arquivo <code>functions.php</code> do seu tema.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> removeParentLinks<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$pages</span> <span style="color: #339933;">=</span> wp_list_pages<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'echo=0&amp;amp;title_li='</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pages</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pages</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pages</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;&lt;ul&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\&lt;a(.*)\&gt;/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\&lt;a(.*)\&gt;/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$pages</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$count</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$page</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$count</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$pages</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/li&gt;'</span><span style="color: #339933;">,</span><span style="color: #000088;">$pages</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pages</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Agora ao invés de chamar a lista de páginas com o <code>wp_list_pages();</code> você vai chamar a função <code>removeParentLinks();</code></p>
<p>O código acima foi retirado do blog <a href="http://bavotasan.com/tutorials/how-to-remove-the-links-to-parent-pages-in-the-wordpress-page-list/" title="Removendo links das páginas pai">Bavotasan</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/removendo-links-das-paginas-mae.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como criar e utilizar os campos personalizados (custom fields) do WordPress</title>
		<link>http://www.leobaiano.com/como-criar-utilizar-campos-personalizados-custom-fields-wordpress.html</link>
		<comments>http://www.leobaiano.com/como-criar-utilizar-campos-personalizados-custom-fields-wordpress.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 13:03:28 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[A arte de blogar]]></category>
		<category><![CDATA[Desenvolvimento WEB]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[campos personalizados]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[tutoriais]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=675</guid>
		<description><![CDATA[O WordPress se tornou o meu CMS (gerenciador de conteúdo) predileto, a medida que fui descobrindo seus recursos e acompanhando a evolução a cada versão me tornei um verdadeiro fã-boy do WordPress. Hoje vou falar para vocês sobre um recurso muito útil do WP, os campos personalizados ou custom fields. O que são os Campos [...]]]></description>
			<content:encoded><![CDATA[<p>O WordPress se tornou o meu CMS (gerenciador de conteúdo) predileto, a medida que fui descobrindo seus recursos e acompanhando a evolução a cada versão me tornei um verdadeiro fã-boy do WordPress.</p>
<p>Hoje vou falar para vocês sobre um recurso muito útil do WP, os campos personalizados ou custom fields.</p>
<h2>O que são os Campos Personalizados (custom fields) do WordPress</h2>
<p>Os campos personalizados (custom fields) permitem que o autor do post possa inserir informações adicionais ao post, podendo ser chamados no tema do blog/ site para atender uma determinada finalidade.</p>
<h2>Exemplos de uso dos campos personalizados (custom fields)</h2>
<p>Os campos personalizados podem ser utilizados para uma infinidade de coisas, o interessante é aprender para que servem e como utilizar e depois deixar a criatividade falar. Abaixo alguns exemplos de uso:</p>
<ul>
<li>Para exibir uma imagem personalizada para cada post na página inicial;</li>
<li>Para atribuir um estilo/ visual personalizado para cada post</li>
<li>Escolher que tipo de anúncio o post deve exibir;</li>
</ul>
<h2>Como criar um campo personalizado (custom fields) no WordPress</h2>
<p>Os campos personalizados são criados na tela de criação/ edição do post, uma vez criado o campo fica disponível toda vez que você for escrever ou editar um post. Para criar um campo personalizado no WordPress basta abrir a tela de criação de posts, encontrar o bloco &#8220;Campos personalizados&#8221;, que fica abaixo dos blocos do post, resumo e trackback.</p>
<p>No bloco campos personalizados você vai clicar no link &#8220;Digite novo&#8221; , escolher o nome do campo personalizado e clicar no botão &#8220;Adicionar campo personalizado&#8221;.</p>
<div id="attachment_673" class="wp-caption aligncenter" style="width: 460px"><img src="http://www.leobaiano.com/wp-content/uploads/2010/08/campos-personalizados-custom-fields-wordpress-1.jpg" alt="Campos Personalizados - Custom Fields - WordPress" title="campos-personalizados-custom-fields-wordpress-1" width="450" height="215" class="size-full wp-image-673" /><p class="wp-caption-text">Campos Personalizados - Custom Fields - WordPress</p></div>
<p>Com o seu campo personalizado criado ele já vai aparecer na lista de campos e ao lado do nome tem o campo valor, sempre que você for escrever um post poderá selecionar o campo personalizado e atribuir um valor ao mesmo, depois é só clicar em &#8220;Adicionar campo personalizado&#8221; e ele aparecerá em uma lista acima do local onde você cria e atribui valor.</p>
<p><strong>Adicionando o campo personalizado</strong></p>
<div id="attachment_674" class="wp-caption aligncenter" style="width: 530px"><img src="http://www.leobaiano.com/wp-content/uploads/2010/08/campos-personalizados-custom-fields-wordpress-2.jpg" alt="Campos Personalizados - Custom Fields - WordPress" title="campos-personalizados-custom-fields-wordpress-2" width="520" height="196" class="size-full wp-image-674" /><p class="wp-caption-text">Campos Personalizados - Custom Fields - WordPress</p></div>
<p><strong>Campo adicionado</strong></p>
<div id="attachment_672" class="wp-caption aligncenter" style="width: 531px"><img src="http://www.leobaiano.com/wp-content/uploads/2010/08/campos-personalizados-custom-fields-wordpress-3.jpg" alt="Campos Personalizados - Custom Fields - WordPress" title="campos-personalizados-custom-fields-wordpress-3" width="521" height="329" class="size-full wp-image-672" /><p class="wp-caption-text">Campos Personalizados - Custom Fields - WordPress</p></div>
<h2>Como utilizar os campos personalizados no tema WordPress</h2>
<p>Agora que você já tem um campo personalizado para atribuir valores para cada post só resta aprender como recuperar estes no tema. É muito simples, dentro do loop você vai inserir o código abaixo que deverá recuperar o valor do campo personalizado.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$imagem_capa</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;imagem_capa&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Onde <code>$post->id</code> trás o ID do post que esta sendo exibido e <code>"imagem_capa"</code> é o nome do campo personalizado que você criou.</p>
<p>Agora você tem uma variavel chamada <code>$imagem_capa</code> com o valor definido no momendo que você publicou o post, vamos imaginar que na hora que você publica um novo post coloca no valor do campo personalizado &#8220;imagem_capa&#8221; a URL de uma imagem e quer que a mesma seja exibida na página inicial ao lado do resumo do post.</p>
<p>Para isto você só precisaria utilizar o código acima, para recuperar o valor do campo personalizado, e depois dentro do loop exibir o valor recuperado, algo parecido com isso:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&lt;img src=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$imagem_capa</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;</pre></td></tr></table></div>

<p>Espero que tenham curtido o post e aprendido para que serve e como utilizar o bloco campo personalizado (custom fields) do WordPress, caso fique alguma dúvida ou precise de alguma ajuda relacionada é só comentar e estamos a disposição.</p>
<p>Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/como-criar-utilizar-campos-personalizados-custom-fields-wordpress.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Como criar um plugin WordPress</title>
		<link>http://www.leobaiano.com/como-criar-um-plugin-wordpress.html</link>
		<comments>http://www.leobaiano.com/como-criar-um-plugin-wordpress.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 15:53:47 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[Desenvolvimento WEB]]></category>
		<category><![CDATA[plugins wordpress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=660</guid>
		<description><![CDATA[Pessoal, o post de hoje é cópia a uma resposta que enviei para uma lista de discussão por e-mail para um parceiro que queria saber como criar um plugin wordpress. Fiquei com preguiça de corrigir os erros de português e testar as funções e por conta disto não iria publicar aqui no blog, mas o [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal, o post de hoje é cópia a uma resposta que enviei para uma lista de discussão por e-mail para um parceiro que queria saber <strong>como criar um plugin wordpress</strong>. Fiquei com preguiça de corrigir os erros de português e testar as funções e por conta disto não iria publicar aqui no blog, mas o Fernando Caldas insistiu por lá e achei bacana colar aqui a resposta, então desculpem os possíveis erros e espero que curtam o post.</p>
<h2>Desenvolvendo um plugin wordpress</h2>
<p><strong>Você sabe programar em PHP? Tem noções de programação orientada a objetos?</strong></p>
<p>Se responder não para qualquer uma das perguntas acima talvez não seja a hora de começar a desenvolver um plugin para WordPress, primeiro aprenda PHP e estude um pouco sobre orientação a objetos, acredite, sem isso você pode até fazer um plugin seguindo tutoriais na net, mas vai ser muito complicado.</p>
<p><strong>Já trabalhou com algum framework para desenvolvimento PHP ou API?</strong></p>
<p>No desenvolvimento de plugins para WP você trabalha um pouco igual ao desenvolvimento de uma aplicação com framework ou API, existem métodos, classes, filtros e ações pré definidas que você vai precisar para trabalhar.</p>
<p>Vamos lá&#8230;</p>
<p>Para desenvolver um plugin para WP você vai seguir os procedimentos normais de desenvolvimento de qualquer aplicação web com a linguagem PHP a unica diferença é que vai precisar estudar o CODEX do WordPress para conhecer as funções pré definidas que vão facilitar sua vida.</p>
<p>Eu basicamente utilizo actions e filtros para decidir quando as funções do meu plugin devem ser chamadas, se eu quero incluir algo quando um post for exibido então uso o filtro <strong>the_content</strong> que chama uma função do plugin passando como parametro o conteúdo do post e recebe de volta o conteúdo que deverá ser exibido.</p>
<p>A sintaxe é:</p>
<p>add_filter(&#8216;the_content&#8217;,'funcao&#8217;);</p>
<p>Exemplo simples de uso deste filtro, vamos imaginar que você deseja incluir um rodapé em todos os posts do seu blog, para não precisar editar tudo novamente você pode criar um plugin com o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*
Plugin Name: NOME DO SEU PLUGIN
Plugin URI: http://leobaiano.com/
Description: DESCRIÇÃO DO PLUGIN
Version: 1.0
Author: Leo Baiano
Author URI: http://leobaiano.com/
*/</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Acima você passa as informações necessárias do seu plugin</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * Rodapé
 *
 * @param string $conteudo - Variavel com o conteúdo original do post
 * @return string $new_conteudo - Variavel retornada com o novo conteúdo do post
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> rodape<span style="color: #009900;">&#40;</span><span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Abaixo defino o rodapé que vai aparecer no meu post</span>
	<span style="color: #000088;">$rodape</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;A cópia deste texto é autorizada desde que mantenha os créditos ao autor.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Abaixo gravo o novo conteúdo do post que será o conteúdo original mais o rodapé definido na variavel acima.</span>
	<span style="color: #000088;">$new_conteudo</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conteudo</span><span style="color: #339933;">.</span><span style="color: #000088;">$rodape</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Retorno o novo conteúdo do post</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$new_conteudo</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Filtro que chama a função rodape e passa o conteudo do post</span>
<span style="color: #666666; font-style: italic;">// Essa rotina vai acontecer toda vez que o post for chamado</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'the_content'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'rodape'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Vamos supor que você precisa incluir alguma informação no cabeçalho do blog, a chamada para um arquivo JS ou CSS por exemplo, então pode utilizar a action <strong>wp_head</strong>. Essa action chama uma função que deverá imprimir o conteúdo que você deseja incluir no cabeçalho da página. É importante lembrar que para que a action funcione corretamente o tema precisa ter o gancho <strong>wp_head()</strong> no cabeçalho da página.</p>
<p>A sintaxe básica é:</p>
<p>add_action(&#8216;wp_head&#8217;, &#8216;funcao&#8217;);</p>
<p>Seguindo o mesmo padrão você pode utilizar a action <strong>wp_footer</strong> para incluir conteúdo no rodapé do blog, para que funcione o tema precisa do gancho <strong>wp_footer();</strong></p>
<p>Sintaxe: add_action(&#8216;wp_footer&#8217;, &#8216;funcao&#8217;);</p>
<p>Muitos desenvolvedores de plugin utilizavam a action <strong>wp_footer</strong> para incluir os créditos, o plugin <a href="http://wordpress.org/extend/plugins/wp-hotwords/">wp-hotwords</a> do <a href="http://www.bernabauer.com/">BernaBauer</a>, por exemplo, exibe a mensagem de que o blog utiliza tal plugin e inclui um script muito importante no footer do blog.</p>
<p>Uma action que eu acho muito interessante e com milhares de possibilidades é a <strong>publish_post</strong> que é acinada toda vez que um post é publicado, ela chama uma função e envia como parametro o ID do post que foi publicado.</p>
<p>Sintaxe: add_action(&#8216;publish_post&#8217;, &#8216;funcao&#8217;);</p>
<p>Agora vamos a um exemplo um pouco mais complexo de plugin, vamos imaginar que você deseha twittar o link do seu post sempre que publicar um post novo no blog.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*
Plugin Name: NOME DO SEU PLUGIN
Plugin URI: http://leobaiano.com/
Description: DESCRIÇÃO DO PLUGIN
Version: 1.0
Author: Leo Baiano
Author URI: http://leobaiano.com/
*/</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Acima você passa as informações necessárias do seu plugin</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * twittar
 *
 * @param int $id_post - Variavel com o ID do post
 * @return boolean - Retorna falso ou verdadeiro a depender do sucesso ou não da operação
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> twittar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id_post</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Recupera os dados do post com base na sua ID	</span>
	<span style="color: #000088;">$post</span> <span style="color: #339933;">=</span> get_post<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id_post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Recupero a URL do post</span>
	<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> get_permalink<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id_post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Chama a função que vai enviar a mensagem</span>
	<span style="color: #000088;">$envio</span> <span style="color: #339933;">=</span> enviarMensagem<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// If enviado com sucesso returna verdadeiro</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$envio</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>	
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Se não enviar retorna falso</span>
	<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * Envio a URL para o twitter
 *
 * @param string $url - Variavel com o a URL do post
 * @return boolean - Retorna falso ou verdadeiro a depender do sucesso ou não da operação
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> enviarMensagem<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Define o usuario do twitter</span>
	<span style="color: #000088;">$usuario</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;seu_usuario&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Define a senha do twitter</span>
	<span style="color: #000088;">$senha</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;sua_senha&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Abaixo preparo o envio da URL para o twitter</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;POST http://twitter.com/statuses/update.json HTTP/1.1<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Host: twitter.com<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Authorization: Basic &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">base64_encode</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$usuario</span>:<span style="color: #006699; font-weight: bold;">$senha</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Content-type: application/x-www-form-urlencoded<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Content-length: &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;status=<span style="color: #006699; font-weight: bold;">$url</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Connection: Close<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$saida</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;status=<span style="color: #006699; font-weight: bold;">$url</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fsockopen</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;twitter.com&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Se enviado com sucesso retorno verdadeiro</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$saida</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Caso contrario retorno falso</span>
	<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Incluimos a action que vai chamar a função twittar sempre que um post for publicado</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'publish_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'twittar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>A resposta ficou tão grande que cheguei a pensar publicar um post, mas deu preguiça de corrigir os erros de português e testar os exemplos, mas enfim, da pra ter uma idéia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/como-criar-um-plugin-wordpress.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exibindo os últimos posts do blog a partir de determinado registro</title>
		<link>http://www.leobaiano.com/exibindo-os-ultimos-posts-do-blog-a-partir-de-determinado-registro.html</link>
		<comments>http://www.leobaiano.com/exibindo-os-ultimos-posts-do-blog-a-partir-de-determinado-registro.html#comments</comments>
		<pubDate>Mon, 14 Jun 2010 14:56:40 +0000</pubDate>
		<dc:creator>Leo Baiano</dc:creator>
				<category><![CDATA[Desenvolvimento WEB]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.leobaiano.com/?p=656</guid>
		<description><![CDATA[Essa dica é para blogueiros que utilizam wordpress em dominio e servidor próprio. Muitos temas exibem na sidebar a lista dos últimos artigos publicados, isso fica bem interessante quando um visitante acessa a página de um determinado post, pois ele pode ver, na lateral, os últimos x posts publicados e se interessar por um dos [...]]]></description>
			<content:encoded><![CDATA[<p>Essa dica é para blogueiros que utilizam wordpress em dominio e servidor próprio.</p>
<p>Muitos temas exibem na sidebar a lista dos últimos artigos publicados, isso fica bem interessante quando um visitante acessa a página de um determinado post, pois ele pode ver, na lateral, os últimos x posts publicados e se interessar por um dos textos. O problema é que a sidebar, normalmente, é a mesma tanto na home quanto nas páginas internas, sendo assim se você exibe 10 textos na sua página inicial e na lateral os últimos 10 textos publicados acaba com links para os mesmos textos que estão sendo exibidos na home.</p>
<p>Para exibir os ultimos posts publicados na sidebar os desenvolvedores de temas para wordpress utilizam o método get_posts(); do wordpress, este método possuí um atributo pouco explorado, chamado offset, que serve para informar de qual registro o wordpress deve começar a chamar os posts, então se seu blog mostra 10 posts na home basta utilizar o get_posts(); conforme demonstrado abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">get_posts<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'offset=9&amp;numberposts=10'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O código acima vai buscar os últimos 10 posts publicados após o décimo registro, assim você não vai exibir, na lista de últimos posts, os mesmos que já aparecem na home.</p>
<p>O código completo fica assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> 
<span style="color: #000088;">$pp_posts</span> <span style="color: #339933;">=</span> get_posts<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'offset=7&amp;numberposts=8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pp_posts</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> setup_postdata<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span> 
&lt;h2&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; rel=&quot;bookmark&quot; title=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/h2&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Espero que a dica seja útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leobaiano.com/exibindo-os-ultimos-posts-do-blog-a-partir-de-determinado-registro.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

