<?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; Dicas e Tutoriais</title>
	<atom:link href="http://wp-brasil.org/categoria/dicas-e-tutoriais/feed" rel="self" type="application/rss+xml" />
	<link>http://wp-brasil.org</link>
	<description>Site da Comunidade Brasileira de WordPress</description>
	<lastBuildDate>Sat, 28 Jan 2012 21:05:29 +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>O WordPress 3.2 pode quebrar seu site: Saiba como se prevenir</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/dicas/o-wordpress-3-2-pode-quebrar-seu-site-saiba-como-se-prevenir</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/dicas/o-wordpress-3-2-pode-quebrar-seu-site-saiba-como-se-prevenir#comments</comments>
		<pubDate>Mon, 27 Jun 2011 13:00:42 +0000</pubDate>
		<dc:creator>Fellipe Soares</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://www.dicaswp.com.br/?p=2762</guid>
		<description><![CDATA[Todos estão voltando seus olhos para o WordPress 3.2, a mais recente versão a ser lançada da nossa querida framework CMS. Ela conta com muitos recursos novos (quem utiliza o WordPress.com já deve ter notado a diferença), e inclusive um tema padrão novo, o 20:11 (Twenty Eleven). Um problema é que, entusiasmado pelos novos recursos, [...]


Nenhum artigo relacionado]]></description>
			<content:encoded><![CDATA[<p>Todos estão voltando seus olhos para o <strong>WordPress 3.2</strong>, a mais recente versão a ser lançada da nossa querida <em>framework</em> CMS. Ela conta com muitos recursos novos (quem utiliza o <em>WordPress.com</em> já deve ter notado a diferença), e inclusive um tema padrão novo, o 20:11 (<em>Twenty Eleven</em>).</p>
<p>Um problema é que, entusiasmado pelos novos recursos, o administrador pode deixar-se iludir e não ser cuidadoso, a ponto de verificar antes se a sua hospedagem atual suporta a nova versão.</p>
<p>A versão 3.2 conta com os seguintes requisitos:</p>
<ul>
<li><em>Versão 5.2.4 d0 <a rel="nofollow" href="http://www.php.net/">PHP</a> ou maior</em></li>
<li><em>Versão 5.0 do <a rel="nofollow" href="http://www.mysql.com/">MySQL</a> ou maior</em></li>
</ul>
<p><em>Ok!</em> Mas como saber se meu site vai quebrar ou funcionar normalmente?</p>
<p>Existe um <em>plugin</em> especial para isso: <em><a rel="nofollow" href="http://wordpress.org/extend/plugins/wordpress-requirements-check/">WordPress 3.2 Requirements Check</a>.</em></p>
<p>Depois de instalá-lo, é apresentada uma mensagem, como pode ver no painel abaixo:</p>
<p style="text-align: center;"><a href="http://media.dicaswp.com.br/wp-content/uploads/2011/06/plugin-require-wp3-2.jpg" rel="lightbox[2762]"><img class="aligncenter size-full wp-image-2763" src="http://media.dicaswp.com.br/wp-content/uploads/2011/06/plugin-require-wp3-2.jpg" alt="" width="487" height="120" /></a></p>
<p>No meu caso, o <em>plugin</em> avisou-me que minha hospedagem suporta sim a nova versão da <em>framework</em>. Lembre-se de desinstalar posteriormente.</p>
<p><strong>E se eu não quiser instalar para poder saber?</strong> Entre em contato diretamente com o seu servidor de hospedagem, e pergunte se ela suporta as recomendações que citamos lá em cima. Ah! <em>Boa sorte, claro!</em></p>
<p><em>:)</em></p>
<h4>Incoming search terms:</h4>
<ul>
<li>como descobrir a versao do meu wordpress</li>
</ul>


<p>Nenhum artigo relacionado</p>]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/dicas/o-wordpress-3-2-pode-quebrar-seu-site-saiba-como-se-prevenir/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como traduzir o WordPress para português</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/dicas/como-traduzir-o-wordpress-para-portugues-2</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/dicas/como-traduzir-o-wordpress-para-portugues-2#comments</comments>
		<pubDate>Sun, 12 Jun 2011 12:48:09 +0000</pubDate>
		<dc:creator>Guilherme</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://www.dicaswp.com.br/?p=2617</guid>
		<description><![CDATA[Se você tiver instalado na sua hospedagem o WordPress, mas por algum motivo ele estiver em alguma linguagem que não seja o Português você pode traduzi-lo sem perder nenhum dado do seu blog. Para isso baixe o WordPress em português em http://br.wordpress.org e descompacte o arquivo que você baixou. Agora envie a pasta language que está [...]


Nenhum artigo relacionado]]></description>
			<content:encoded><![CDATA[<p>Se você tiver instalado na sua hospedagem o WordPress, mas por algum motivo ele estiver em alguma linguagem que não seja o Português você pode traduzi-lo sem perder nenhum dado do seu blog.</p>
<p>Para isso baixe o WordPress em português em <a rel="nofollow" href="http://br.wordpress.org" >http://br.wordpress.org</a> e descompacte o arquivo que você baixou. Agora envie a pasta language que está dentro da pasta wp-config para a sua hospedagem.</p>
<p>Depois edite o arquivo wp-config.php que fica na raiz do Wordpress e altere o texto da função define(); para a função seguinte:</p>
<pre>

define ('WPLANG', 'pt_BR');
</pre>
<p>Agora o seu WordPress se encontra traduzido.</p>
<div><a rel="nofollow" href="http://www.oficinadanet.com.br/artigo/1399/como_traduzir_o_wordpress_para_portugues" ></a></div>


<p>Nenhum artigo relacionado</p>]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/dicas/como-traduzir-o-wordpress-para-portugues-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atualizando o WordPress 3.0.5</title>
		<link>http://wp-brasil.org/novidades/releases/atualizando-o-wordpress-3-0-5</link>
		<comments>http://wp-brasil.org/novidades/releases/atualizando-o-wordpress-3-0-5#comments</comments>
		<pubDate>Thu, 10 Feb 2011 16:17:04 +0000</pubDate>
		<dc:creator>Gabriel Reguly</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://wp-brasil.org/?p=2354</guid>
		<description><![CDATA[Recentemente foi lançada a versão 3.0.5 para corrigir falhas de segurança. Porém, por excesso de zelo,  a correção foi além do necessário e criou uma situação rara onde o HTML de comentários é filtrado sem necessidade, removendo imagens, etc dos comentários. Como isto afeta apenas usuários com a capacidade de unfiltered_html e  a versão 3.1 [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente foi lançada a versão 3.0.5 para corrigir falhas de segurança.</p>
<p>Porém, por excesso de zelo,  a correção foi além do necessário e criou uma situação rara onde o HTML de comentários é filtrado sem necessidade, removendo imagens, etc dos comentários.</p>
<p>Como isto afeta apenas usuários com a capacidade de <code>unfiltered_html</code> e  a versão 3.1 está prestes a ser lançada, foi decidido que não será feita uma versão 3.0.6 para solucionar este erro.</p>
<p>Para as pessoas que são afetadas por ele, existe uma opção de atualização: o plugin <a href="http://wordpress.org/extend/plugins/hotfix/">Hotfix</a>.</p>
<p>Atualmente o plugin Hotfix corrige apenas este erro, mas no futuro deverá servir como alternativa para corrigir erros mais rapidamente do que com uma versão nova.</p>
<p>Este post é uma versão traduzida <a href="http://wpdevel.wordpress.com/2011/02/08/hotfix/">desse post no  blog WPDevel</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/novidades/releases/atualizando-o-wordpress-3-0-5/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adicionando posts no menu</title>
		<link>http://wp-brasil.org/novidades/adicionando-posts-no-menu</link>
		<comments>http://wp-brasil.org/novidades/adicionando-posts-no-menu#comments</comments>
		<pubDate>Tue, 25 Jan 2011 13:31:12 +0000</pubDate>
		<dc:creator>Gabriel Reguly</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Dicas e Tutoriais]]></category>
		<category><![CDATA[Novidades]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[menus]]></category>

		<guid isPermaLink="false">http://wp-brasil.org/?p=2247</guid>
		<description><![CDATA[Uma das coisas novas do WordPress é o gerenciamento de Menus ( em Aparências -&#62; Menus ), uma funcionalidade bem bacana. Quando estive no WordCamp Curitiba, mostrei  ao Zé Fontainhas o que me parecia ser um bug nesta funcionalidade. Não conseguiamos  adicionar posts aos menus, somente páginas. Porém quando desligava o JavaScript no navegador,  os [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das coisas novas do WordPress é o gerenciamento de Menus ( em Aparências -&gt; Menus ), uma funcionalidade bem bacana.</p>
<p>Quando estive no WordCamp Curitiba, mostrei  ao Zé Fontainhas o que me parecia ser um bug nesta funcionalidade.</p>
<p>Não conseguiamos  adicionar posts aos menus, somente páginas.</p>
<div id="attachment_2250" class="wp-caption alignnone" style="width: 472px"><a rel="attachment wp-att-2250" href="http://wp-brasil.org/novidades/adicionando-posts-no-menu/attachment/menus-%e2%80%b9-blog-do-gabriel-%e2%80%94-wordpress_1295876821321"><img class="size-large wp-image-2250" title="Menus ‹ Blog do Gabriel — WordPress - Somente páginas" src="http://wp-brasil.org/wp-content/uploads/2011/01/Menus-‹-Blog-do-Gabriel-—-WordPress_1295876821321-462x483.png" alt="Imagem do gerenciador de menus sem posts" width="462" height="483" /></a><p class="wp-caption-text">Note que nas caixas da esquerda não há nenhum post.</p></div>
<p>Porém quando desligava o JavaScript no navegador,  os posts apareciam.</p>
<p>Mostrei ao Guilherme Aguiar, que também não sabia como fazer os posts aparecerem.</p>
<p>Ficou a dúvida  até que em dezembro, no seu blog,  o Guilherme <a href="http://guilherme.webdf.com.br/2010/12/propriedades-escondidas-no-wp_nav_menu/">mostrou o caminho</a>: o botão de  &#8216;Opções de tela&#8217;.</p>
<p>Clicando ali, vemos a opção de mostrar posts.</p>
<div id="attachment_2251" class="wp-caption alignnone" style="width: 472px"><a rel="attachment wp-att-2251" href="http://wp-brasil.org/novidades/adicionando-posts-no-menu/attachment/menus-%e2%80%b9-blog-do-gabriel-%e2%80%94-wordpress_1295876842464"><img class="size-large wp-image-2251" title="Menus ‹ Blog do Gabriel — WordPress - Opções de tela" src="http://wp-brasil.org/wp-content/uploads/2011/01/Menus-‹-Blog-do-Gabriel-—-WordPress_1295876842464-462x551.png" alt="Imagem do gerenciador de menus com Opções de tela aparecendo" width="462" height="551" /></a><p class="wp-caption-text">Note a opção para mostrar posts</p></div>
<p>Basta marcar a opção, e os posts já ficam disponíveis para serem adicionados ao menu.</p>
<div id="attachment_2252" class="wp-caption alignnone" style="width: 472px"><a rel="attachment wp-att-2252" href="http://wp-brasil.org/novidades/adicionando-posts-no-menu/attachment/menus-%e2%80%b9-blog-do-gabriel-%e2%80%94-wordpress_1295876860440"><img class="size-large wp-image-2252" title="Menus ‹ Blog do Gabriel — WordPress - Posts aparecendo" src="http://wp-brasil.org/wp-content/uploads/2011/01/Menus-‹-Blog-do-Gabriel-—-WordPress_1295876860440-462x710.png" alt="Imagem do gerenciador de menus com posts" width="462" height="710" /></a><p class="wp-caption-text">Note que agora temos uma caixa de posts na esquerda.</p></div>
<p>Copiando do site do Guilherme, finalizo este post.</p>
<p><em>&#8220;Enfim, ai vai uma dica para sempre clicarem nessas <strong>Opções de tela</strong> e não perderem nenhuma possibilidade que o WP pode proporcionar.&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/novidades/adicionando-posts-no-menu/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Dicas de SEO para WordPress</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress#comments</comments>
		<pubDate>Wed, 27 Oct 2010 19:49:15 +0000</pubDate>
		<dc:creator>Desenvolvedor Web</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://bygiovanni.com.br/?p=111</guid>
		<description><![CDATA[Estava hoje lendo o blog do wp-brasil e encontrei um artigo muito interessante que aborda uma coisa muito boa e que poucos fazem, que SEO para WordPress. Se você quer ter um site/blog na internet hoje e quer ter um belo ranking no Google ou outros motores de busca, você precisa fazer um otimização bem [...]<p>Postado em: <a href="http://bygiovanni.com.br">Desenvolvedor Web &#124; Giovanni Keppelen</a></p>]]></description>
			<content:encoded><![CDATA[<p>Estava hoje lendo o blog do <a title="Desenvolvedor Web | SEO | WordPress" rel="nofollow" href="http://wp-brasil.org/" >wp-brasil</a> e encontrei um artigo muito interessante que aborda uma coisa muito boa e que poucos fazem, que SEO para WordPress. Se você quer ter um site/blog na internet hoje e quer ter um belo ranking no Google ou outros motores de busca, você precisa fazer um otimização bem feita do seu site/blog, digo não so os fatores onpage mais outras coisas importantes de SEO.</p>
<p>O motivo desse post e para colocar um link para vocês onde tem esse artigo que e dividido em 2 partes e que a 1º parte dele ja fui publicada. Espero que leiam e goste do post pois vale a pena ler e fazer se você tem um site/blog no WordPress.</p>
<p><a title="Desenvolvedor Web | SEO | WordPress" rel="nofollow" href="http://migre.me/1Os5l" >SEO para WordPress &#8211; parte 1</a>
<p>Postado em: <a href="http://bygiovanni.com.br">Desenvolvedor Web | Giovanni Keppelen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas de SEO para WordPress</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress#comments</comments>
		<pubDate>Wed, 27 Oct 2010 19:49:15 +0000</pubDate>
		<dc:creator>Desenvolvedor Web</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://bygiovanni.com.br/?p=111</guid>
		<description><![CDATA[Estava hoje lendo o blog do wp-brasil e encontrei um artigo muito interessante que aborda uma coisa muito boa e que poucos fazem, que SEO para WordPress. Se você quer ter um site/blog na internet hoje e quer ter um belo ranking no Google ou outros motores de busca, você precisa fazer um otimização bem [...]<p>Postado em: <a href="http://bygiovanni.com.br">Desenvolvedor Web &#124; Giovanni Keppelen</a></p>]]></description>
			<content:encoded><![CDATA[<p>Estava hoje lendo o blog do <a title="Desenvolvedor Web | SEO | WordPress" rel="nofollow" href="http://wp-brasil.org/" >wp-brasil</a> e encontrei um artigo muito interessante que aborda uma coisa muito boa e que poucos fazem, que SEO para WordPress. Se você quer ter um site/blog na internet hoje e quer ter um belo ranking no Google ou outros motores de busca, você precisa fazer um otimização bem feita do seu site/blog, digo não so os fatores onpage mais outras coisas importantes de SEO.</p>
<p>O motivo desse post e para colocar um link para vocês onde tem esse artigo que e dividido em 2 partes e que a 1º parte dele ja fui publicada. Espero que leiam e goste do post pois vale a pena ler e fazer se você tem um site/blog no WordPress.</p>
<p><a title="Desenvolvedor Web | SEO | WordPress" rel="nofollow" href="http://migre.me/1Os5l" >SEO para WordPress &#8211; parte 1</a>
<p>Postado em: <a href="http://bygiovanni.com.br">Desenvolvedor Web | Giovanni Keppelen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/dicas/dicas-de-seo-para-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando taxonomia e posts personalizados no WordPress 3.0</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/usando-taxonomia-e-posts-personalizados-no-wordpress-3-0</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/usando-taxonomia-e-posts-personalizados-no-wordpress-3-0#comments</comments>
		<pubDate>Sat, 23 Oct 2010 18:50:43 +0000</pubDate>
		<dc:creator>Marcelo Torres</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://www.marcelotorresweb.com/?p=1055</guid>
		<description><![CDATA[Olá pessoal, faz tempo que não posto nada aqui no blog, porém venho com uma dica que provavelmente vai ajudar muita gente. Há muitos tutoriais sobre como registrar posts e [...]Usando taxonomia e posts personalizados no WordPress 3.0 is a post from...]]></description>
			<content:encoded><![CDATA[Olá pessoal, faz tempo que não posto nada aqui no blog, porém venho com uma dica que provavelmente vai ajudar muita gente. Há muitos tutoriais sobre como registrar posts e [...]<p><a href="http://www.marcelotorresweb.com/usando-taxonomia-e-posts-personalizados-no-wordpress-3-0/">Usando taxonomia e posts personalizados no WordPress 3.0</a> is a post from: <a href="http://www.marcelotorresweb.com">Marcelo Torres</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/usando-taxonomia-e-posts-personalizados-no-wordpress-3-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO para WordPress – Parte 1</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/dicas/seo-para-wordpress-%e2%80%93-parte-1</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/dicas/seo-para-wordpress-%e2%80%93-parte-1#comments</comments>
		<pubDate>Thu, 14 Oct 2010 16:58:53 +0000</pubDate>
		<dc:creator>Luan Muniz</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://www.tudoparawordpress.com.br/?p=2385</guid>
		<description><![CDATA[Primeira parte do artigo sobre SEO em Wordpress, nesta parte falo sobre SEO ONPage do wordpress, voltando a atenção para o código<br /> <strong>Leia também:</strong><ol><li><a href="http://www.tudoparawordpress.com.br/dicas-wordpress/seo-para-wordpress-parte-2/" rel="bookmark" title="Permanent Link: SEO para WordPress – Parte 2">SEO para WordPress &#8211; Parte 2</a> Segunda parte do artigo sobre SEO em Wordpress, nesta parte...</li><li><a href="http://www.tudoparawordpress.com.br/dicas-wordpress/como-exibir-parte-da-postagem-apenas-para-usuarios-registrados/" rel="bookmark" title="Permanent Link: Como exibir parte da postagem apenas para usuários registrados">Como exibir parte da postagem apenas para usuários registrados</a> É muito fácil e com esta dica você poderá exibir...</li><li><a href="http://www.tudoparawordpress.com.br/dicas-wordpress/quanto-tempo-devo-esperar-para-atualizar-wordpress-para-2-8/" rel="bookmark" title="Permanent Link: Quanto tempo devo esperar para atualizar meu WordPress para o 2.8 ?">Quanto tempo devo esperar para atualizar meu WordPress para o 2.8 ?</a> Com o recente lançamento do WordPress 2.8, notei vários relatos...</li><li><a href="http://www.tudoparawordpress.com.br/dicas-wordpress/itens-importantes-a-saber-wordpress-3/" rel="bookmark" title="Permanent Link: Itens importantes que você deve saber antes de atualizar seu WordPress para o 3.0">Itens importantes que você deve saber antes de atualizar seu WordPress para o 3.0</a> Ap&#243;s 6 meses de desenvolvimento, o WordPress 3.0 foi finalmente...</li></ol>]]></description>
			<content:encoded><![CDATA[<div
id="wp_fb_like_button" style="margin: 0; float: none"><iframe
src="http://www.facebook.com/plugins/like.php?href=http://www.tudoparawordpress.com.br/dicas-wordpress/seo-para-wordpress-parte-1/&amp;layout=standard&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;width=450&amp;height=30" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width: 450px; height: 30px;"></iframe></div><p>Oi pessoal</p><p>A pouco tempo atr&aacute;s aqui no Rio de janeiro tivemos o <a
href="http://www.coeseo.com.br" >#Co&eacute;SEO</a>, foi um evento muito bom, tivemos a presen&ccedil;a de muitos nomes do search brasileiro al&eacute;m de uma discu&ccedil;&atilde;o muito legal sobre SEO. Uma das pessoas que conheci por l&aacute;, o <a
href="http://twitter.com/docluz" >@docluz</a>, falou uma coisa simples, mas muito legal, <em>&quot;se voc&ecirc; quer uma coisa, dedique-se&quot;</em>. Isso me inspirou bastante, por isso decidi escrever esse artigo.</p></p><p>O <strong>WordPress</strong> &eacute; uma ferramenta muito boa para quem sabe usar e defendo que o WordPress n&atilde;o s&oacute; como um CMS para Blogging, mas para todo tipo de conte&uacute;do.</p><p>Como em todo site, principalmente blogs, se voc&ecirc; quer ter um bom posicionamento voc&ecirc; precisa de um bom trabalho de SEO no seu site.</p><p>Como todos sabem, SEO On-Page &eacute; s&oacute; uma pequena parte desse mundo, mas &eacute; dessa pequena parte que vou falar agora.</p><p>Como muitos sabem o WordPress tem uma estrutura de arquivos bem dividida, Cabe&ccedil;alho (header.php), Corpo (index.php, single.php, page.php e etc), Sidebar (sidebar.php) e rodap&eacute; (footer.php) e al&eacute;m destas p&aacute;ginas de estrutura temos tamb&eacute;m as p&aacute;ginas de fun&ccedil;&otilde;es(functions.php), categorias (category.php) e etc&#8230;</p><p>Cada p&aacute;gina dessa merece uma considera&ccedil;&atilde;o especial, em algumas dessas p&aacute;ginas existem pontos que &eacute; interessante trabalhar. Por isso eu separei esse artigo em duas partes, c&oacute;digo e configura&ccedil;&atilde;o. Vamos a primeira parte ent&atilde;o.</p><p>O cabe&ccedil;alho do WordPress &eacute; bem legal de se trabalhar e a otimiza&ccedil;&atilde;o dele &eacute; muito importante. &Eacute; no cabe&ccedil;alho que definimos coisas extremamente importantes como descri&ccedil;&otilde;es, titulos, e etc.</p><p>Ent&atilde;o vamos ao que interessa:</p><h2>N&atilde;o use Tags Desnecess&aacute;rias</h2><p>Evite este tipo de c&oacute;digo:</p><blockquote><p>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &lt;?php language_attributes(); ?&gt;&gt;</p></blockquote><p>Prefira escrever no HTML o resultado disso. Fazendo isso voc&ecirc; ganha no tempo de carregamento da p&aacute;gina, o que &eacute; levado em conta no algoritmo de posicionamento, ent&atilde;o prefira escrever logo no html</p><blockquote><p>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; dir=&quot;ltr&quot; lang=&quot;pt-BR&quot;&gt;</p></blockquote><h2>Sempre use o wp_head() e o wp_footet()</h2><p>Essas fun&ccedil;&otilde;es s&atilde;o muito legais, al&eacute;m de fun&ccedil;&otilde;es como a p&aacute;gina&ccedil;&atilde;o de posts, o ping da URL atual e muitas outras coisas, por ela voc&ecirc; consegue inserir diversas fun&ccedil;&otilde;es no cabe&ccedil;alho sem nenhum problema.</p><h2>Sempre use a meta tag Description</h2><p>Minha dica &eacute; que voc&ecirc; use da seguinte maneira:</p><blockquote><p>&lt;meta name=&quot;description&quot; content=&quot;&lt;?php bloginfo(&#39;description&#39;); ?&gt;&quot; /&gt;</p></blockquote><p>Assim voc&ecirc; pode editar sua descri&ccedil;&atilde;o pelo painel administrativo, mas se quiser seguir a primeira dica e escrever manualmente, &oacute;timo, voc&ecirc; novamente ganhar&aacute; em performance.</p><p>Essa tag &eacute; importante pois &eacute; daqui que o google vai puxar aquela descri&ccedil;&atilde;o que ele coloca no snippet (Aquele bloco com o Titulo do site, Descri&ccedil;&atilde;o e URL que aparecem como resultados de busca no google)</p><p>Uma descri&ccedil;&atilde;o bem feita atrai usu&aacute;rios e uma dica interessante &eacute; usar algumas palavras chaves nessa descri&ccedil;&atilde;o, pois as palavras buscadas aparecem em negrito na descri&ccedil;&atilde;o e isso chama a aten&ccedil;&atilde;o do usu&aacute;rio, sem contar que faz o motor de busca pensar 2x antes de usar um outro elemento como descri&ccedil;&atilde;o (Sim, isso pode acontecer!)</p><h2>Use o &lt;?php wp_get_archives(&#39;type=monthly&amp;format=link&#39;); ?&gt;</h2><p>Este c&oacute;digo gera varias tags com os arquivos do seu blog logo no cabe&ccedil;alho</p><p>Porque isso &eacute; importante?<br
/> Al&eacute;m &eacute; claro de ajudar na indexa&ccedil;&atilde;o do seu blog, os motores de busca, pelo c&oacute;digo que &eacute; gerado a partir dessa fun&ccedil;&atilde;o guarda um hist&oacute;rico e pode usar isso de diversas maneiras que ser&atilde;o ben&eacute;ficas para voc&ecirc;.</p><h2>Inclua sempre a meta tag NOINDEX nas p&aacute;ginas de busca!!</h2><p>Essa &eacute; uma parte importante</p><p>Busca gera conte&uacute;do duplicado e os motores de busca n&atilde;o gostam disso.</p><p>Cada vez que voc&ecirc; faz uma busca, &eacute; gerada uma URL diferente e se os motores de busca v&ecirc;em isso, interpretam como conte&uacute;do duplicado na maioria das vezes, ent&atilde;o use sempre o noindex para evitar esse tipo de coisa.</p><p>Ent&atilde;o no seu Head coloque isto na p&aacute;gina de busca</p><blockquote><p>&lt;meta name=&quot;robots&quot; content=&quot;noindex,follow&quot; /&gt;<code><span><br
/> </span></code></p></blockquote><h2>Otimize o Titulo da sua p&aacute;gina</h2><p>Essa &eacute; de longe uma das dicas mais importantes!!</p><p>Use t&iacute;tulos diferentes para cada p&aacute;gina, procure fazer um c&oacute;digo que exiba um titulo otimizado para cada p&aacute;gina do seu site, tanto para categorias, p&aacute;ginas internas, tags, buscas e etc.</p><p>O Titulo &eacute; com certeza uma das partes mais importantes na hora de otimizar seu site, n&atilde;o s&oacute; para os mecanismos de busca, mas para o usu&aacute;rio tamb&eacute;m.</p><p>Um titulo amig&aacute;vel e bem feito n&atilde;o s&oacute; atrai a aten&ccedil;&atilde;o do usu&aacute;rio, como tamb&eacute;m a do mecanismo de busca.</p><p>Ent&atilde;o gaste bastante tempo fazendo um script (ou pegue um bom na internet) para gerar um bom titulo, acredite isso ir&aacute; fazer uma ENORME diferen&ccedil;a.</p><h2>Carregue o seu Javascript sempre no footer!</h2><p>Isso &eacute; uma boa pr&aacute;tica que deve ser colocada em pr&aacute;tica, n&atilde;o &eacute; obrigat&oacute;rio, muito menos ir&aacute; fazer o google te rankear melhor (at&eacute; onde eu sei), mas &eacute; uma pr&aacute;tica correta, pois javascript &eacute; usado para complementar o que j&aacute; existe, n&atilde;o agir por conta pr&oacute;pria e logicamente se &eacute; um complemento, deve ser carregado depois do principal.</p><h2>Adicione alguns c&oacute;digos legais na sua functions.php</h2><blockquote><p>add_action(&#39;wp_footer&#39;, &#39;ga&#39;);</p></blockquote><blockquote><p> function ga(){<br
/> if (!current_user_can(&#39;level_10&#39;))<br
/> {<br
/> ?&gt;<br
/> &lt;script type=&quot;text/javascript&quot;&gt;<br
/> var _gaq = _gaq || [];<br
/> _gaq.push([&#39;_setAccount&#39;, &#39;UA-xxxxxx-x&#39;]);<br
/> _gaq.push([&#39;_trackPageview&#39;]);<br
/> (function() {<br
/> var ga = document.createElement(&#39;script&#39;); ga.type = &#39;text/javascript&#39;; ga.async = true;<br
/> ga.src = (&#39;https:&#39; == document.location.protocol ? &#39;https://ssl&#39; : &#39;http://www&#39;) + &#39;.google-analytics.com/ga.js&#39;;<br
/> var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(ga, s);<br
/> })();&lt;/script&gt;<br
/> &lt;?php }<br
/> }</p></blockquote><p>Este c&oacute;digo Filtra o google analytics, assim quando voc&ecirc; estiver logado como administrador ele n&atilde;o ir&aacute; mapear sua atividade pelo site, deixando voc&ecirc; com uma an&aacute;lise muito mais clara n&atilde;o confundindo usu&aacute;rio com administrador fazendo manuten&ccedil;&atilde;o.</p><blockquote><p>function no_self_ping(&amp;$links)<br
/> {<br
/> $home = get_option(&#39;home&#39;);<br
/> foreach ($links as $l =&gt; $link)<br
/> if (0 === strpos($link, $home))<br
/> unset($links[$l]);<br
/> }<br
/> add_action( &#39;pre_ping&#39;, &#39;no_self_ping&#39; );</p></blockquote><p>Esta fun&ccedil;&atilde;o evita que voc&ecirc; pingue voc&ecirc; mesmo, assim voc&ecirc; n&atilde;o referencia voc&ecirc; a voc&ecirc; mesmo</p><h2>Fa&ccedil;a um c&oacute;digo sem&acirc;ntico</h2><p>Use Tableless.</p><p>Usar tabelas n&atilde;o far&aacute; voc&ecirc; ser punido ou muito menos piorar&aacute; seu rankeamento, mas com um c&oacute;digo em tableless o tempo de carregamento do site &eacute; muito mais r&aacute;pido, sem contar facilidade de manuten&ccedil;&atilde;o.</p><p>Codigo estrutural organizado &eacute; f&aacute;cil de ser lido pelos mecanismos de busca, facilitando para eles diferenciar os conte&uacute;dos e assim classificar melhor cada parte do seu site.</p><h2>Use o atributo title nos links e alt nas imagens</h2><p>Isso &eacute; uma coisa que voc&ecirc; deve ter sempre em mente.</p><p>O wordpress faz um preenchimento padr&atilde;o desses campos se tratando de imagens, mas como esse preenchimento n&atilde;o &eacute; nem um pouco legal, geralmente pegando o nome da imagem, muitas vezes algo do tipo DSC005836</p><p>Fa&ccedil;a uma descri&ccedil;&atilde;o e preencha o Alt corretamente voc&ecirc; mesmo, um c&oacute;digo otimizado e leg&iacute;vel conta bastante.</p><p>SEO n&atilde;o &eacute; s&oacute; trabalhar no c&oacute;digo, &eacute; principalmente trabalhar no conte&uacute;do, ent&atilde;o na segunda parte desse artigo, que irei postar em breve, vou detalhar um pouco disso e tamb&eacute;m das configura&ccedil;&otilde;es que s&atilde;o legais fazer no wordpress, al&eacute;m de plugins e etc.</p><p>Bom galera, acho que &eacute; isso</p><p>Esse foi o meu primeiro artigo, espero que voc&ecirc;s gostem</p><p>Caso voc&ecirc;s tenham outras dicas, postem nos coment&aacute;rios!<br
/> E se voc&ecirc;s gostaram e querem que eu escreva sobre algum outro assunto, comente tamb&eacute;m!</p><p>Obrigado!</p><br/><p><strong>Leia também:</strong><ol><li><a
href='http://www.tudoparawordpress.com.br/dicas-wordpress/seo-para-wordpress-parte-2/' rel='bookmark' title='Permanent Link: SEO para WordPress &#8211; Parte 2'>SEO para WordPress &#8211; Parte 2</a> <small>Segunda parte do artigo sobre SEO em Wordpress, nesta parte...</small></li><li><a
href='http://www.tudoparawordpress.com.br/dicas-wordpress/como-exibir-parte-da-postagem-apenas-para-usuarios-registrados/' rel='bookmark' title='Permanent Link: Como exibir parte da postagem apenas para usuários registrados'>Como exibir parte da postagem apenas para usuários registrados</a> <small>É muito fácil e com esta dica você poderá exibir...</small></li><li><a
href='http://www.tudoparawordpress.com.br/dicas-wordpress/quanto-tempo-devo-esperar-para-atualizar-wordpress-para-2-8/' rel='bookmark' title='Permanent Link: Quanto tempo devo esperar para atualizar meu WordPress para o 2.8 ?'>Quanto tempo devo esperar para atualizar meu WordPress para o 2.8 ?</a> <small>Com o recente lançamento do WordPress 2.8, notei vários relatos...</small></li><li><a
href='http://www.tudoparawordpress.com.br/dicas-wordpress/itens-importantes-a-saber-wordpress-3/' rel='bookmark' title='Permanent Link: Itens importantes que você deve saber antes de atualizar seu WordPress para o 3.0'>Itens importantes que você deve saber antes de atualizar seu WordPress para o 3.0</a> <small>Ap&oacute;s 6 meses de desenvolvimento, o WordPress 3.0 foi finalmente...</small></li></ol></p><img src="http://feeds.feedburner.com/~r/tudoparawordpress/~4/pmjINtQNPvo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/dicas/seo-para-wordpress-%e2%80%93-parte-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando Custom Post Types no WordPress 3</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/utilizando-custom-post-types-no-wordpress-3</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/utilizando-custom-post-types-no-wordpress-3#comments</comments>
		<pubDate>Sun, 12 Sep 2010 12:55:13 +0000</pubDate>
		<dc:creator>Ronaldo Bitencourt</dc:creator>
				<category><![CDATA[Dicas e Tutoriais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Tipos de Posts Customizados]]></category>
		<category><![CDATA[wordpress 3.0]]></category>

		<guid isPermaLink="false">http://wp-brasil.org/?p=2010</guid>
		<description><![CDATA[O WordPress permite o armazenamento de diferentes tipos de conteúdo. Esses conteúdos são armazenados no banco de dados na tabela &#8220;wp_posts&#8221; e diferenciados pela coluna &#8220;post_type&#8221;. Nas versões anteriores a 3.0 do WordPress, já era possível a criação de Tipo de Posts Personalizados(Custom Post Types), porém a partir da versão 3.0 foram implementados novos métodos [...]]]></description>
			<content:encoded><![CDATA[<p>O <a title="Comunidade Brasileira de WordPress" href="http://wp-brasil.org">WordPress</a> permite o armazenamento de diferentes <strong>tipos de conteúdo</strong>. Esses conteúdos são armazenados no banco de dados na tabela &#8220;wp_posts&#8221; e diferenciados pela coluna &#8220;post_type&#8221;.</p>
<p>Nas versões anteriores a 3.0 do WordPress, já era possível a criação de <strong>Tipo de Posts Personalizados(Custom Post Types),</strong> porém a partir da versão 3.0 foram implementados novos métodos com a finalidade de facilitar e popularizar o uso dos <strong>tipos de posts</strong>, que na verdade são tipos de conteúdos personalizados.</p>
<h3>Tipos de posts padrões</h3>
<h4>Post</h4>
<p>Um &#8220;post&#8221; (no banco de dados &#8220;post&#8221;) é o principal tipo de conteúdo utilizado, os Posts normalmente são exibidos em um blog ordenados cronologicamente. E também são usados na publicação dos feeds.</p>
<h4>Páginas</h4>
<p>Uma &#8220;página&#8221; (no banco de dados &#8220;page&#8221;) é muito parecio com um post, porém não faz parte da mesma estrutura cronológica dos posts.  Veja algumas diferenças importantes entre Posts e Páginas:</p>
<ul>
<li> Páginas não são organizadas cronologicamente;</li>
<li> Páginas possuem uma estrutura de URL própria, podendo ser acessadas a partir da URL do site principal;</li>
<li> Páginas podem utilizar Modelos de Páginas especiais;</li>
<li> Páginas também podem ser organizadas dentro de uma estrutura hierárquica;</li>
</ul>
<h4>Anexo</h4>
<p>Um &#8220;anexo&#8221; (no banco de dados &#8220;attachment&#8221;) é um post especial que contém informações sobre arquivos enviados através do sistema de upload de mídia.</p>
<h4>Revisões</h4>
<p>A &#8220;revisão&#8221; (no banco de dados &#8220;revision&#8221;), é usada para armazenar um rascunho de todos os posts (posts) e páginas (pages) existentes.</p>
<h4>Menus de Navegação</h4>
<p>Um &#8220;menu de navegação&#8221;(no banco de dados &#8220;nav_menu&#8221;), é usado para armazenar todas as informações relacionadas aos menus de navegação, outra implementação que só está disponível a partir do WordPress 3.</p>
<p>Agora que já sabemos quais são os cinco tipos de posts padrão do WordPress, vamos ver como são criados novos tipos de posts personalizados.</p>
<h3>Tipos de Posts Personalizados</h3>
<p>Para adicionar um tipo personalizado no WordPress 3.0, é preciso usar a função <strong>register_post_type</strong>. Esta função permite que você defina o tipo de post e como ele se comporta dentro do WordPress.</p>
<h4>Registrando um tipo de post personalizado:</h4>
<pre class="brush: php">
add_action( &#039;init&#039;, &#039;create_post_type&#039; );
function create_post_type() {
register_post_type( &#039;noticias&#039;,
array(
&#039;labels&#039; =&gt; array(
&#039;name&#039; =&gt; __( &#039;Notícias&#039; ),
&#039;singular_name&#039; =&gt; __( &#039;Notícia&#039; )
),
&#039;public&#039; =&gt; true,
)
);
}
</pre>
<p>O código acima cria um tipo de post &#8220;noticias&#8221;, ou seja, toda vez que criado um post com este tipo, no banco de dados na tabela &#8220;wp_posts&#8221; na coluna &#8220;post_type&#8221; referente a este post, contará o valor &#8220;noticias&#8221;. A função register_post_type possui diversos parâmetros, no exemplo acima foram usados dois principais, o primeiro é o &#8220;labels&#8221;, que define o nome do novo tipo personalizado, o plural e o singular. O segundo é &#8220;public&#8221;, que é uma flag para mostrar o tipo de post na seção de administração do site, e para fazê-lo aparecer no site principal, se é adicionado nas <em>queries</em> ou não.</p>
<p>Você pode personalizar várias informações sobre o tipo personalizado, para saber mais sobre os outros parâmetros acesse a documentação da função <a href="http://codex.wordpress.org/Function_Reference/register_post_type">register_post_type</a>.</p>
<h3>Exibindo o conteúdo na interface do website</h3>
<p>Para fazer consultas específicas e trazer apenas posts do tipo personalizado que você deseja, você pode utilizar o parâmetro &#8220;post_type&#8221; em um objeto WP_Query sempre que precisar, por exemplo:</p>
<pre class="brush: php">
$loop = new WP_Query( array( &#039;post_type&#039; =&gt; &#039;noticias&#039;, &#039;posts_per_page&#039; =&gt; 10 ) );
while ( $loop-&gt;have_posts() ) : $loop-&gt;the_post();
echo &#039;&lt;h3&gt;&#039;;
the_title();
echo &#039;&lt;/h3&gt;&#039;;
echo &#039;&lt;div&gt;&#039;;
the_content();
echo &#039;&lt;/div&gt;&#039;;
endwhile;
</pre>
<p>O código acima mostrará os 10 últimos posts do tipo noticias inseridos no painel administrativo.</p>
<h3>Plugins para Custom Post Types</h3>
<ul>
<li> <a href="http://wordpress.org/extend/plugins/custom-post-type-ui/">Custom Post Types UI</a></li>
<li> <a href="http://www.wpeasyposttypes.com/demo">Easy Post Types</a></li>
<li> <a href="http://wordpress.org/extend/plugins/simple-custom-post-type-archives/>Simple Custom Post Type Archives</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/utilizando-custom-post-types-no-wordpress-3/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress rewrite rules</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/wordpress-rewrite-rules</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/wordpress-rewrite-rules#comments</comments>
		<pubDate>Wed, 08 Sep 2010 18:49:14 +0000</pubDate>
		<dc:creator>leogermani</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[wpbrasil]]></category>

		<guid isPermaLink="false">http://hacklab.com.br/?p=938</guid>
		<description><![CDATA[Algumas vezes, na construção de um site em WordPress, você pode precisar criar algum tipo de estrutura fora da hierarquia padrão do WordPress e seus arquivos de template. No WP 3.0 com os post types personalizados, isso se tornou uma necessidade ainda mais frequente. Você pode precisar, por exemplo, criar uma página com a listagens [...]]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes, na construção de um site em WordPress, você pode precisar criar algum tipo de estrutura fora da hierarquia padrão do WordPress e seus arquivos de template. No WP 3.0 com os <a href="http://codex.wordpress.org/Custom_Post_Types">post types personalizados</a>, isso se tornou uma necessidade ainda mais frequente.</p>
<p>Você pode precisar, por exemplo, criar uma página com a listagens dos posts do tipo &#8216;livros&#8217; que você criou no seu código. </p>
<p>Este tutorial vai mostrar o funcionamento básico da classe <a href="http://codex.wordpress.org/Function_Reference/WP_Rewrite">WP_Rewrite()</a> do WordPress que te ajuda a criar URLs customizadas e usá-las para extrair informações (sem precisar usar ?variavel=valor) ou para redirecionar para um arquivo de template criado por você.<span id="more-938"></span></p>
<p>Existem outras maneiras de interagir com essa classe, e aqui vou mostrar apenas uma. Por isso é sempre bom dar uma olhada na <a href="http://codex.wordpress.org/Function_Reference/WP_Rewrite">documentção completa</a> depois.</p>
<p>Primeiro crie uma função que irá criar as suas regras e associe ela a um hook. Neste primeiro exemplo, vamos criar uma página de listagem para um custom post type.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> cria_minhas_regras<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_rewrite</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000088;">$new_rules</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">&quot;livros$&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'index.php?meu_template=livros'</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$wp_rewrite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rules</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$new_rules</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$wp_rewrite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rules</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'generate_rewrite_rules'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'cria_minhas_regras'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>No código acima estou criando uma regra que diz que sempre que minha URL for &#8220;meusite/livros&#8221;, ele será direcionado para o index.php com uma variável meu_template setada com o valor &#8216;livros&#8217;. Note que este é o index.php da raíz do WordPress, e não do tema ativo.</p>
<p>As regras são definidas usando uma expressão regular. Se você não conhece expressões regulares, <a href="http://hacklab.com.br/2010/09/08/wordpress-rewrite-rules/pt.wikipedia.org/wiki/Express%C3%A3o_regular">vá atrás</a> pois são muito úteis. Vamos montar algumas regras mais complexas aqui só para termos de exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> cria_minhas_regras<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_rewrite</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$new_rules</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">&quot;livros$&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'index.php?meu_template=livros'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">&quot;livros/autor/([^/]+)$&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'index.php?meu_template=livros&amp;autor='</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$wp_rewrite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">preg_index</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$wp_rewrite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rules</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$new_rules</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$wp_rewrite</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rules</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Agora adicionamos uma regra nova. Se a URL vier meusite/livros/autor/qualquercoisa, o WordPress vai criar uma variável chamada autor e colocar essa &#8220;qualquercoisa&#8221; como seu valor.</p>
<p>Note que é preciso saber alguma coisa de expressões regulares, pois elas são a base da construção das regras. Explicar expressões regulares nesse artigo o deixaria muito extenso. Por isso, apenas para constar, vale dizer que essa expressão regular entre parênteses quer dizer: um grupo de um ou mais caracteres que não tenha o caractere &#8220;/&#8221;. Os parênteses servem para capturar e depois serem acessados pelo método preg_index() ali na frente. Se houver mais de uma captura na mesma expressão, basta ir passando os valores 2, 3, etc para este método.</p>
<p>Seguindo adiante, precisamos registrar essas variáveis que criamos nas variáveis públicas da classe WP_Query, para que possamos acessá-las através da função get_query_var().</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> registrar_query_vars<span style="color: #009900;">&#40;</span><span style="color: #000088;">$public_query_vars</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$public_query_vars</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;meu_template&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$public_query_vars</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;autor&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$public_query_vars</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'query_vars'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'registrar_query_vars'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Pronto. Agora você pode acessar esses valores no seu código, usando, por exemplo:</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: #000088;">$meu_template</span> <span style="color: #339933;">=</span> get_query_var<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meu_template'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Em alguns casos, isso já vai ser suficiente, pois tudo o que você precisa é pegar algumas variáveis e aí no próprio arquivo functions do seu tema você se resolve. Mas você pode fazer também um redirecionamento para forçar o WordPress a usar um arquivo de template diferente do seu tema, que esteja fora da hierarquia do WordPress. Para isso, faça o seguinte:</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
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> template_redirect_intercept<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// verifica a variável</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meu_template'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'livros'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// se tiver o valor que queremos, usa o nosso template</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span> TEMPLATEPATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/tpl_livros.php'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span> TEMPLATEPATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/tpl_livros.php'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'template_redirect'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'template_redirect_intercept'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>E é isso. Agora crie o arquivo tpl_livros.php no seu tema e seja feliz.</p>
<p><strong>Nota importantíssima:</strong> o hook &#8220;generate_rewrite_rules&#8221; onde colocamos nossa função para criar as novas regras é chamado quando você salva as configurações de Links Permanentes. É preciso que seus links permanentes estejam configurados para alguma coisa diferente da padrão e o módulo rewrite do apache esteja funcionando corretamente, com o arquivo .htaccess criado.</p>
<p><strong>Nota importantíssima 2:</strong> Cada vez que você mudar alguma coisa no código das suas regras, é preciso salvar novamente a configuração de Links Permanentes para atualizar as regras. Isso acontece porque o WordPress guarda essas regras no banco, e não adianta simplesmente gerá-las dinamicamente no código. Você pode contornar isso, chamando na mão a função &#8220;$wp_rewrite-&gt;flush_rules()&#8221;, mas não é uma boa idéia chamar essa função toda vez que o site é carregado, pois ela é meio pesada.</p>
<p><strong>Rewrite Rules rules!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/tutoriais/wordpress-rewrite-rules/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

