<?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>Tableless &#187; Wordpress</title>
	<atom:link href="http://tableless.com.br/categoria/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://tableless.com.br</link>
	<description>Tableless - Desenvolvimento inteligente com padrões web</description>
	<lastBuildDate>Fri, 18 May 2012 12:22:56 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Cuidado com invasões no WordPress</title>
		<link>http://tableless.com.br/cuidado-com-invasoes-no-wordpress/</link>
		<comments>http://tableless.com.br/cuidado-com-invasoes-no-wordpress/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 13:00:47 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[cotidiano]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=5943</guid>
		<description><![CDATA[O WordPress não é perfeito e possui falhas, tome cuidado com possíveis invasões.]]></description>
			<content:encoded><![CDATA[<p>Um dos principais gerenciadores de conteúdo, o WordPress, possui ainda possui algumas falhas. É necessário ficar atento e tomar cuidado para qualquer situação.</p>
<p>Há duas semanas, passei sérios problemas com o WordPress, com o blog <a href="http://papodebuteco.net">Papo de Buteco</a>. Nunca tinha passado por uma situação parecida com essa, e por isso que tomar cuidado antes de agir.</p>
<h2>Como verifiquei</h2>
<p>Por otimizar o site, sempre estou verificando como as páginas do blog estão se comportando no Google. Busquei por <strong>site:papodebuteco.net</strong> para verificar todas as minhas páginas indexas no Google, e obtive o seguinte resultado:</p>
<p><a href="http://tableless.com.br/wp-content/uploads/2012/04/serp-papo-de-buteco.png"><img class="alignnone size-medium wp-image-5948" src="http://tableless.com.br/wp-content/uploads/2012/04/serp-papo-de-buteco-300x280.png" alt="" width="300" height="280" /></a></p>
<p>Ao primeiro olhar, já observei as tags de título das páginas estavam totalmente diferentes, no mínimo estranho, não é? Comecei a estudar a situação, e conclui que neste caso, aconteceu uma espécie de <strong><a title="Cloaking" href="http://www.mestreseo.com.br/black-hat/cloaking-aplicacao-scripts-blackhat-e-questoes-eticas">Cloaking</a></strong>, que reproduzia a página normal para o usuário e outra página para o Google.</p>
<p>De primeira, achei que eram os plug-ins instalados no site que estavam fazendo isso, mas até que o Google me enviou a seguinte mensagem para o <strong><a href="https://www.google.com/webmasters/tools">Web Master Tools</a></strong><strong> </strong>do site:</p>
<p><a href="http://tableless.com.br/wp-content/uploads/2012/04/mensagem-google.png"><img class="alignnone size-medium wp-image-5951" src="http://tableless.com.br/wp-content/uploads/2012/04/mensagem-google-300x211.png" alt="" width="300" height="211" /></a></p>
<p>Ao acessar o link indicado na mensagem, e realmente foi mostrada uma página com um conteúdo não relacionado ao blog.</p>
<h2>Solucionando o problema</h2>
<p>O que precisa ser feito é: <strong>Reinstalar o WordPress para atualizar seus arquivos.</strong></p>
<p><strong>No próprio painel do gerenciador</strong>, é possível fazer essa reinstalação, então nada de apagar todos os arquivos do FTP, enviar novamente e reintegrar com o banco de dados.</p>
<p>Em seu painel de adiminstração, procure no menu de navegação por <strong>Atualizações</strong> e siga como na imagem abaixo:</p>
<p><a href="http://tableless.com.br/wp-content/uploads/2012/04/menu-navegacao.png"><img class="alignnone size-medium wp-image-5944" src="http://tableless.com.br/wp-content/uploads/2012/04/menu-navegacao-128x300.png" alt="" width="128" height="300" /></a><a href="http://tableless.com.br/wp-content/uploads/2012/04/reinstalando-wordpress.png"><img class="alignright size-medium wp-image-5953" src="http://tableless.com.br/wp-content/uploads/2012/04/reinstalando-wordpress-300x164.png" alt="" width="300" height="164" /></a></p>
<p>Depois disso, acessei a página que o Google indicou na mensagem e não tive mais problemas, a página foi carregou com seu conteúdo real.</p>
<p>Para confirmar, você pode tirar a <em>“prova real”</em> <strong>buscando como o Googlebot</strong>, que é uma ferramenta encontrada no Google Webmaster Tools.</p>
<p><a href="http://tableless.com.br/wp-content/uploads/2012/04/gwmt-1.png"><img class="size-medium wp-image-5945 alignleft" src="http://tableless.com.br/wp-content/uploads/2012/04/gwmt-1-300x156.png" alt="" width="300" height="156" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Ao clicar em <strong>“Processando”</strong> e estiver lendo a página do jeito que deveria ler, com o seu código fonte real, pode ter certeza que o problema foi resolvido.</p>
<h2>Conclusão</h2>
<p>Não se sabe ao certo ainda como essa invasão se manifestou no blog, mas é bom ficar atento a qualquer tipo de propagação estranha relacionada a seu site. O tipo de invasão apresentado no artigo não é único, podem existir outros casos espalhados. A vulnerabilidade pode também está relacionada com o servidor onde o seu site está hospedado.</p>
<p>As páginas que não entraram no cache do Google depois que o problema foi solucionado, ainda se encontram com o mesmo conteúdo da invasão, se vocês procurarem, ainda acharam algumas páginas assim.</p>
<p>Apesar de tudo isso, <strong>não houve oscilação com o número de visitas do site</strong>, ele se mantéu estável. E o <strong>número de <em>backlinks</em> apontados para as páginas do blog cresceu</strong>, mas com um textos âncora sem relação ao conteúdo real do blog.</p>
<p>O<strong> Cloaking</strong> é considerada uma técnica de blackhat pelo Google, caso o problema não fosse solucionado a tempo, o blog poderia ser sofrer algum tipo de punição, veja mais em: <a href="http://support.google.com/webmasters/bin/answer.py?hl=pt-BR&amp;answer=66355">http://support.google.com/webmasters/bin/answer.py?hl=pt-BR&amp;answer=66355</a>.</p>
<p>Se o seu site ainda não é integrado ao Google <strong><a href="https://www.google.com/webmasters/tools/">Web Master Tools</a></strong>, acesse agora e integre! É simples, fácil, e oferece informações importantes para o seu site. Para completar e evitar que algo semelhante aconteça, confira <strong><a href="http://webperfeita.com/10-dicas-para-aumentar-a-seguranca-do-wordpress/">dicas para aumentar a segurança no WordPress</a></strong>.</p>
<p>Quero aproveitar o espaço para agradecer <a href="http://twitter.com/#!/papodebuteco">Leandro Lopes</a> (dono do blog Papo de Buteco), que autorizou a postagem de exemplos relacionados ao blog dele. É importante relatar o que aconteceu, ainda mais com casos verídicos, pois pode acontecer com qualquer um.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/seu-lugar-ao-sol/" title="Seu lugar ao sol">Seu lugar ao sol</a></li><li><a href="http://tableless.com.br/gomo-teste-seu-site-mobile/" title="GoMo &#8211; Teste seu site mobile">GoMo &#8211; Teste seu site mobile</a></li><li><a href="http://tableless.com.br/agora-e-a-vez-dos-desenvolvedores/" title="Agora é a vez dos desenvolvedores">Agora é a vez dos desenvolvedores</a></li><li><a href="http://tableless.com.br/boas-praticas-de-acessibilidade/" title="Boas práticas de Acessibilidade">Boas práticas de Acessibilidade</a></li><li><a href="http://tableless.com.br/introducao-a-padroes-de-codificacao/" title="Introdução aos padrões de codificação">Introdução aos padrões de codificação</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/cuidado-com-invasoes-no-wordpress/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Usando Meta Box em seu tema WordPress</title>
		<link>http://tableless.com.br/usando-meta-box-em-seu-tema-wordpress/</link>
		<comments>http://tableless.com.br/usando-meta-box-em-seu-tema-wordpress/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 13:52:29 +0000</pubDate>
		<dc:creator>keppelen</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[Meta Box]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=5161</guid>
		<description><![CDATA[Entenda como funcionam o Meta Box do Wordpress.]]></description>
			<content:encoded><![CDATA[<h2>O que são Meta Boxes?</h2>
<p>Os Meta Boxes (Caixas de informações) foi implementado a partir da versão 2.5 do CMS, os Meta Boxes são aquelas caixas arrastáveis que estão presente na Dashboard, edição de um post, páginas, além de outros locais na área administrativa do WordPress.</p>
<p>Os Meta Boxes é uma maneira atraente para a tela do editor de post e evita forçar os usuários a confiar em <a title="Custom Post Type" href="http://tableless.com.br/custom-post-types-wordpress/" target="_blank">campos personalizados</a>. Se você já criou algum tipo de campo personalizado no WordPress, você provavelmente gostaria de adicionar algum campo.</p>
<p>Com os Meta Box e mais fácil. Imagine que você esteja criando um tema para um cliente que precise catalogar sua coleção de vinil. Você começa imediatamente olhar para o WordPress para ver como isso pode ser feito. Cada Post representa um Vinil, que é perfeito para adicionar imagem, titulo e descrição. Podemos usar também as categorias e marcar dentro do WordPress para que os organize. Mas vamos supor que o cara queira acrescentar mais um dado para catalogação? O WordPress não te dar essa opção por padrão a não ser que usemos o grande Meta Box.</p>
<h2>Usando o Meta boxes</h2>
<p>Neste tutorial não iremos trabalhar em um arquivo functions.php. Que não é o lugar correto para ele. Se você está adicionando dados a uma mensagem, é provável que você quer que ele exista independentemente do seu projeto de front end. Como tal, você deve colocar esse código em algum lugar que não é dependente do seu design. Ex: Um arquivo de plugin.</p>
<p>Convenientemente o WordPress oferece uma função para adicionar os Meta Boxes a uma tela de administração, usando o seguinte &#8220;add_meta_box&#8221;. Abaixo um exemplo.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #000088;">$callback</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$context</span><span style="color: #339933;">,</span> <span style="color: #000088;">$priority</span><span style="color: #339933;">,</span> <span style="color: #000088;">$callback_args</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>Parâmetros</h3>
<ul>
<li>$id &#8211; (<a title="String" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#String" target="_blank">String</a>) Identificador único (Obrigatório)</li>
<li>$title &#8211; (<a title="String" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#String" target="_blank">String</a>) Titulo a ser exibido (Obrigatório)</li>
<li>$callback &#8211; (<a title="Callback" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#Callback" target="_blank">Callback</a>) Função para exibir o conteúdo do Meta Boxes  (Obrigatório) <a title="Exemplo Callback" href="http://codex.wordpress.org/Function_Reference/add_meta_box#Example" target="_blank">Exemplo</a></li>
<li>$page &#8211; (<a title="String" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#String" target="_blank">String</a>) Onde será exibido o Meta Boxes. Exemplos (<tt>'post'</tt>, <tt>'page'</tt>, <tt>'link'</tt>, or<tt>'custom_post_type' )</tt></li>
<li> $context (<a title="String" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#String" target="_blank">String</a>) Tela onde o box vai ser inserido.</li>
<li>$priority (<a title="String" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#String" target="_blank">String</a>) Prioridade de inserção da caixa em relação as demais.</li>
<li>$callback_args (<a title="Array" href="http://codex.wordpress.org/How_to_Pass_Tag_Parameters#Array" target="_blank">array</a>) Determina a passagem de parâmetros a função callback.</li>
</ul>
<p>Então, nosso <strong>add_meta_box </strong>será parecido com esse.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_meta_box <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'my-meta-box-id'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Meu primeiro Meta Box'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_vinil'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'normal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Não podemos simplesmente colocar em nosso arquivo plugin sozinho, se não vamos acabar na tela branca da morte ou o erro fatal PHP. Chamada para a função indefinida, por quê? Porque chamamos a função add_meta_box antes do WordPress ser carregado. Com isso precisamos fazer um gancho no WordPress, que faz parte da api de um plugin. Basicamente, as funções começam enganchando em uma ação do WordPress. Então vamos fazer nosso gancho add_meta_box em uma função, então conectar essa função ao add_meta_boxes, evitando o erro fatal. Nosso código para o Meta Boxes para tela de postagem ficará assim:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'add_meta_boxes'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_add'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_add<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'my-meta-box-id'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Meu primeiro Meta Box'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_vinil'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'normal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h2>Renderizando o Meta Box</h2>
<p>O código acima é o suficiente para adicionar o Meta Box, mas agora temos que tornar a coisa mais legal. Vamos adicionar campos, apenas um formulário HTML misturado com um pouco de PHP para exibir os dados salvos. Não precisamos incluir as tags de formulário pois o WordPress já faz isso para a gente.  :) Lembre que a string passada como o $callback em add_meta_box? Agora vamos criar um função com o mesmo nome.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_vinil<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Conteúdo do meu primeiro Meta Box.'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Agora vamos fazer o formulário, vamos adicionar vários campos para este Meta Box, 1 input, 1 select, 1 checkbox. Vamos começar com o input.</p>
<p>Na função</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_vinil<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Conteúdo do meu primeiro Meta Box.'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Vamos retirar o</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Conteúdo do meu primeiro Meta Box'</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Para começar a fazer o formulario do Meta Box, ficando da seguinte forma:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function vinil_meta_box_vinil()<br />
{<br />
?&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;texto_meta_box&quot;&gt;Text Label&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;texto_meta_box&quot; id=&quot;texto_meta_box&quot; /&gt;<br />
&lt;/p&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Mas e quanto a exibir os dados? Bem você verá a seguinte, vamos armazenar esses dados na tabela usando a função wp_postmeta update_post_meta. Essas funções tem duas irmãs chamada get_post_meta e get_post_custom, que pega os dados de wp_postmeta. O get_post_meta só peega dados de uma chave, enquanto get_post_custom pega tudo. Como estamos usando realmente apenas um campo, neste ponto, vamos usar o get_post_meta.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function vinil_meta_box_vinil()<br />
{<br />
$values = get_post_custom( $post-&gt;ID );<br />
$text = isset( $values['texto_meta_box'] ) ? esc_attr( $values['texto_meta_box'][0] ) : '';<br />
$selected = isset( $values['meta_box_select'] ) ? esc_attr( $values['meta_box_select'][0] ) : '';<br />
$check = isset( $values['meta_box_check'] ) ? esc_attr( $values['meta_box_check'][0] ) : '';<br />
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );<br />
?&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;texto_meta_box&quot;&gt;Text Label&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;texto_meta_box&quot; id=&quot;texto_meta_box&quot; /&gt;<br />
&lt;/p&gt;<br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Agora vamos adicionar o DropDow em nosso Meta Box.</p>
<p>No drop-dow iremos usar uma das funções mais úteis no WordPress, o selected(). Ele compara o primeiro valor, os dados que salva, com o segundo atributo de valor, &lt;option&gt;. Se eles são os mesmos a função selected=&#8221;selected&#8221; que faz com o que o valor do drop down seja gravado. Mas você também pode usar o selected com botões de radio.</p>
<p>Ficando da seguinte forma:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function vinil_meta_box_vinil()<br />
{<br />
$values = get_post_custom( $post-&gt;ID );<br />
$text = isset( $values['texto_meta_box'] ) ? esc_attr( $values['texto_meta_box'][0] ) : '';<br />
$selected = isset( $values['meta_box_select'] ) ? esc_attr( $values['meta_box_select'][0] ) : '';<br />
$check = isset( $values['meta_box_check'] ) ? esc_attr( $values['meta_box_check'][0] ) : '';<br />
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );<br />
?&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;texto_meta_box&quot;&gt;Text Label&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;texto_meta_box&quot; id=&quot;texto_meta_box&quot; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;meta_box_select&quot;&gt;Color&lt;/label&gt;<br />
&lt;select name=&quot;meta_box_select&quot; id=&quot;meta_box_select&quot;&gt;<br />
&lt;option value=&quot;red&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'red'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Vermelho&lt;/option&gt;<br />
&lt;option value=&quot;blue&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blue'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Azul&lt;/option&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>Adicionando o Check box</h3>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function vinil_meta_box_vinil()<br />
{<br />
$values = get_post_custom( $post-&gt;ID );<br />
$text = isset( $values['texto_meta_box'] ) ? esc_attr( $values['texto_meta_box'][0] ) : '';<br />
$selected = isset( $values['meta_box_select'] ) ? esc_attr( $values['meta_box_select'][0] ) : '';<br />
$check = isset( $values['meta_box_check'] ) ? esc_attr( $values['meta_box_check'][0] ) : '';<br />
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );<br />
?&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;texto_meta_box&quot;&gt;Text Label&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;texto_meta_box&quot; id=&quot;texto_meta_box&quot; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;meta_box_select&quot;&gt;Color&lt;/label&gt;<br />
&lt;select name=&quot;meta_box_select&quot; id=&quot;meta_box_select&quot;&gt;<br />
&lt;option value=&quot;red&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'red'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Vermelho&lt;/option&gt;<br />
&lt;option value=&quot;blue&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blue'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Azul&lt;/option&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;input type=&quot;checkbox&quot; name=&quot;meta_box_check&quot; id=&quot;meta_box_check&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> checked<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$check</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'on'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> /&gt;<br />
&lt;label for=&quot;meta_box_check&quot;&gt;Don't Check This.&lt;/label&gt;<br />
&lt;/p&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Novamente o WordPress fornece a função checked(). Ela funciona exatamente como selected() comparando o primeiro valor com o segundo valor e repetindo para checked=&#8221;checked&#8221; se eles são o mesmo.</p>
<h2>Para finalizar vamos salvar nosso Meta Box</h2>
<p>Para salvar nossos dados, vamos confiar em outro gancho: save_post. Isso funciona como o nosso gancho na ação acima:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_save'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>A função vinil_meta_box receberá um argumento, a ID do Post, e vai cuidar da limpeza e salvar todos os nossos dados.</p>
<p>Antes de podermos fazer qualquer coisa, no entanto, que temos que fazer 3 coisas: verificar se o Post esta auto salvando, verificar o valor único que criamos anteriormente, e verificar se o usuário atual pode realmente editar o post.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_save'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_save<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'DOING_AUTOSAVE'</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> DOING_AUTOSAVE <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span>wp_verify_nonce<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_meta_box_nonce'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>current_user_can<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'edit_post'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Agora as coisas divertidas: na verdade, salvar nossos dados. A regra número um, ao colocar qualquer coisa em seu banco de dados ou em seu site é não confiar no usuário. Mesmo se esse usuário é você. Para o efeito, antes de salvar os dados, queremos ter certeza de que não há nada malicioso lá. Felizmente WordPress fornece um monte de funções para validação de dados. Para isso vamos utilizar o esc_attr(). E também vamos usar a função update_post_meta para salvar os nossos dados. Leva três argumentos: a ID post, a chave de meta, e o valor.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_save'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_save<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'DOING_AUTOSAVE'</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> DOING_AUTOSAVE <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span>wp_verify_nonce<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_meta_box_nonce'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>current_user_can<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'edit_post'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$allowed</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
<span style="color: #0000ff;">'a'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
<span style="color: #0000ff;">'href'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #339933;">,</span> wp_kses<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$allowed</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_select'</span><span style="color: #339933;">,</span> esc_attr<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$chk</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'on'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">'off'</span><span style="color: #339933;">;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_check'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$chk</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>É isso, agora você deve ter um Meta Boxes funcionando em seu WordPress.</p>
<h2>Nosso arquivo fica assim:</h2>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #666666; font-style: italic;">/*<br />
Plugin Name: Meta Box<br />
Plugin URI: http://bygiovanni.com.br<br />
Description:<br />
Version: 1.0<br />
Author: Giovanni - Tableless<br />
Author URI: http://bygiovanni.com.br<br />
*/</span><br />
<br />
<span style="color: #666666; font-style: italic;">//ADICIONANDO O META BOX</span><br />
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'add_meta_boxes'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_add'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_add<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'my-meta-box-id'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Meu primeiro Meta Box'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_vinil'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'normal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//FORMULARIO PARA SALVAS OS DADOS</span><br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_vinil<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> get_post_custom<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: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? esc_attr<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</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: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$selected</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? esc_attr<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</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: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$check</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? esc_attr<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</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: #0000ff;">''</span><span style="color: #339933;">;</span><br />
wp_nonce_field<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'my_meta_box_nonce'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_nonce'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;p&gt;<br />
&lt;label for=&quot;texto_meta_box&quot;&gt;Text Label&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;texto_meta_box&quot; id=&quot;texto_meta_box&quot; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&quot;meta_box_select&quot;&gt;Color&lt;/label&gt;<br />
&lt;select name=&quot;meta_box_select&quot; id=&quot;meta_box_select&quot;&gt;<br />
&lt;option value=&quot;red&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'red'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Vermelho&lt;/option&gt;<br />
&lt;option value=&quot;blue&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> selected<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$selected</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blue'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&gt;Azul&lt;/option&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;input type=&quot;checkbox&quot; name=&quot;meta_box_check&quot; id=&quot;meta_box_check&quot; <span style="color: #000000; font-weight: bold;">&lt;?php</span> checked<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$check</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'on'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> /&gt;<br />
&lt;label for=&quot;meta_box_check&quot;&gt;Don't Check This.&lt;/label&gt;<br />
&lt;/p&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'vinil_meta_box_save'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> vinil_meta_box_save<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span> <span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'DOING_AUTOSAVE'</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> DOING_AUTOSAVE <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span>wp_verify_nonce<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_nonce'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_meta_box_nonce'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>current_user_can<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'edit_post'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$allowed</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
<span style="color: #0000ff;">'a'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
<span style="color: #0000ff;">'href'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #339933;">,</span> wp_kses<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'texto_meta_box'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$allowed</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_select'</span><span style="color: #339933;">,</span> esc_attr<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_select'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$chk</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meta_box_check'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'on'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">'off'</span><span style="color: #339933;">;</span><br />
update_post_meta<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_id</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_check'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$chk</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Para saber mais sobre os Meta Box podem ver no Codex que também é uma ótima fonte de estudo para o WP. <a href="http://codex.wordpress.org/Function_Reference/add_meta_box" target="_blank">http://codex.wordpress.org/Function_Reference/add_meta_box</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/wordpress-include-tags/" title="Wordpress Include Tags">Wordpress Include Tags</a></li><li><a href="http://tableless.com.br/cuidado-com-invasoes-no-wordpress/" title="Cuidado com invasões no WordPress">Cuidado com invasões no WordPress</a></li><li><a href="http://tableless.com.br/sublime-text-2-meu-novo-editor/" title="Sublime Text 2 &#8211; Meu novo editor">Sublime Text 2 &#8211; Meu novo editor</a></li><li><a href="http://tableless.com.br/dicas-de-sobrevivencia-ie6/" title="Dicas de sobrevivência em uma era pós o IE6">Dicas de sobrevivência em uma era pós o IE6</a></li><li><a href="http://tableless.com.br/drops-7-voce-esta-fazendo-errado/" title="Drops 7 &#8211; Você está fazendo errado">Drops 7 &#8211; Você está fazendo errado</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/usando-meta-box-em-seu-tema-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Front-end concluído, como começar no WordPress? Parte I</title>
		<link>http://tableless.com.br/front-end-concluido-como-comecar-wordpress-parte-i/</link>
		<comments>http://tableless.com.br/front-end-concluido-como-comecar-wordpress-parte-i/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 10:00:52 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2012]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=4835</guid>
		<description><![CDATA[A primeira parte do artigo abordará o inicio com desenvolvimento com Wordpress, desde da conclusão do front-end, até de criação da página inicial e sua personalização através de sidebar, menu, loop dos posts, ect.]]></description>
			<content:encoded><![CDATA[<p>Andando pelo <a href="http://tableless.com.br/forum/" title="Fórum" target="_blank">fórum do Tableless</a>, me deparei com <a href="http://tableless.com.br/forum/discussion/55/customizacao-tema-wordpress">esta postagem</a>, e pelo que eu vi, essa é uma grande dúvida para todos que estão iniciando no desenvolvimento com WordPress. </p>
<p>O usuário <a href="http://tableless.com.br/forum/profile/375/angelolucas">Angelo Lucas</a> do nosso fórum postou a seguinte resposta:</p>
<blockquote><ol>
<li>Desenvolva o Front-End do tema (HTML, CSS e Javascript)</li>
<li>Instale o PHP, Mysql na sua máquina. Baixe o WordPress e instale-o, ele vem com alguns temas incluso</li>
<li>Duplique um tema do wordpress e começe a implementar seu HTML na programação já existente, não é difícil, não é chato.</li>
</ol>
</blockquote>
<p>Gostei bastante da resposta, mas o assunto é tão empolgante que merecia um conteúdo mais detalhado. E para melhorar o aprendizado e nos guiar, <a href="http://tableless.com.br/wp-content/uploads/2011/12/layout-para-desenvolvimento-wordpress.jpg" target="_blank">desenhei um layout bem simples</a>. <strong>Não reparem, sou péssimo design.</strong></p>
<h3>Iniciando o desenvolvimento</h3>
<p>Com o front-end concluído, duplique o tema padrão do WordPress e altere o nome da pasta duplicada para o nome do seu tema. Acho melhor duplicar, pois se perde um tempo criando os arquivos do zero. Se o seu WordPress for a partir da versão 3.2, terás dois temas padrões: o Twenty Ten e o Twenty Eleven. A diferença é que o Twenty Eleven vem programado nas tags do HTML5.</p>
<p>Depois disso, é importante entender a <a href="http://tableless.com.br/hierarquia-de-arquivos-do-wordpress/" target="_blank">hierarquia de arquivos do WordPress</a> e saber que <strong>sem os arquivos index.php e style.css o tema não funciona</strong>.</p>
<p>O arquivo style.css, além do estilo do tema, pode-se preencher informações do tema. Adicione no inicio do style.css esses comentários:</p>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">/*<br />
Theme Name: Nome do meu Tema<br />
Theme URI: http://meusite.com.br<br />
Description: Descrição do meu tema<br />
Author: Paulo Rodrigues<br />
Author URI: http://meusite.com.br<br />
Version: 1.0<br />
Tags: branco, vermelho, preto, header, menu, colunas, rodape<br />
*/</span></div></td></tr></tbody></table></div>
<p>Personalize a partir das suas informações, mas não é necessário preencher todas elas, colocar o nome do tema e o nome do autor está ótimo.</p>
<p>Dois arquivos do tema possuem importância e servem para aumentar a nossa produtividade, que são: header.php e footer.php e essas páginas são incluidas nas páginas através das funções get_header() e get_footer(), respectivamente. </p>
<p>Vou mostrar um exemplo de meus arquivos header.php e footer.php para vocês terem noção.</p>
<p><a href="http://tableless.com.br/wp-content/uploads/2011/12/header-para-desenvolvimento-wordpress.jpg"><img src="http://tableless.com.br/wp-content/uploads/2011/12/header-para-desenvolvimento-wordpress.jpg" alt="Header para desenvolvimento WordPress" width="600" height="63" class="alignnone size-medium wp-image-4843" /></a></p>
<p><strong>header.php</strong></p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE html&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span> <span style="color: #000066;">dir</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ltr&quot;</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pt-BR&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">head</span></a> <span style="color: #000066;">profile</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://gmpg.org/xfn/11&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo( 'charset' ); ?&gt;</span></span>&quot; /&gt;<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">title</span></a>&gt;&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;?php wp_title<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'|'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">title</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo( 'stylesheet_url' ); ?&gt;</span></span>&quot; /&gt; <br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pingback&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo( 'pingback_url' ); ?&gt;</span></span>&quot; /&gt; <br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alternate&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/rss+xml&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo('title');?&gt;</span></span> RSS Feed&quot; href=&quot;<span style="color: #009900;">&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'rss2_url'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>&quot; /&gt;<br />
<span style="color: #808080; font-style: italic;">&lt;!-- Se você for usar comentário no seu tema, deixe isso! --&gt;</span><br />
<span style="color: #009900;">&lt;?php if <span style="color: #66cc66;">&#40;</span> is_singular<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; get_option<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'thread_comments'</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> wp_enqueue_script<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'comment-reply'</span> <span style="color: #66cc66;">&#41;</span>;?&gt;</span><br />
<span style="color: #808080; font-style: italic;">&lt;!-- Se você for usar comentário no seu tema, deixe isso! --&gt;</span><br />
<span style="color: #009900;">&lt;?php</span><br />
<span style="color: #009900;"><span style="color: #66cc66;">//</span>Sempre deixa essa função wp_head<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; pois alguns plugins utilizam dela para retornar informação </span><br />
<span style="color: #009900;">wp_head<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </span><br />
<span style="color: #009900;">?&gt;</span> <br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">head</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">body</span></a> &lt;?php body_class<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>&gt;<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;main&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;header&gt;</span><br />
<span style="color: #009900;">&lt;section <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php bloginfo('url'); ?&gt;</span></span>&quot; title=&quot;<span style="color: #009900;">&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>&quot;&gt;<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span> - <span style="color: #009900;">&lt;?php bloginfo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'description'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span><br />
<span style="color: #009900;">&lt;?php </span><br />
<span style="color: #009900;"><span style="color: #66cc66;">//</span>Função para retornar o menu</span><br />
<span style="color: #009900;">wp_nav_menu<span style="color: #66cc66;">&#40;</span>array<span style="color: #66cc66;">&#40;</span></span><br />
<span style="color: #009900;"><span style="color: #ff0000;">'menu'</span> <span style="color: #66cc66;">=</span>&gt;</span> 'menu_principal',<br />
'theme_location' =&gt; 'menu_principal',<br />
'echo' =&gt; true,<br />
'container' =&gt; 'nav',<br />
'container_id' =&gt; 'menu' <br />
));<br />
?&gt;<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>header&gt;</span> <br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;container&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Estudem essas funções: <a href="http://codex.wordpress.org/pt-br:Template_Tags/bloginfo">bloginfo()</a>, <a href="http://codex.wordpress.org/Function_Reference/wp_title">wp_title()</a>, <a href="http://codex.wordpress.org/Function_Reference/wp_head">wp_head()</a> e <a href="http://codex.wordpress.org/Function_Reference/wp_footer">wp_footer()</a>.</p>
<p><strong>wp_nav_menu,</strong> WTF??? O que é isso, Paulo? Calma, é uma função para retornar menus, confira esse artigo de <a href="http://tableless.com.br/criando-menus-no-wordpress/">criação de menus no WordPress</a>, que aí tenho certeza que vai entender tudo.</p>
<p>Personalize essas páginas através do seu front-end, tente explorar o máximo dessas páginas para não perder tempo nas páginas internas.</p>
<p>Finalizando esse inicio, o esqueleto do seu tema está pronto!</p>
<h3>Trabalhando com a página inicial e páginas internas</h3>
<p>Beleza, concluímos nosso “esqueleto”, e a partir daí vamos criar as páginas do tema. A página índex.php é a página inicial do tema, ela só não é a página inicial, quando adicionamos ao nosso tema a pagina home.php. Mas de inicio, vamos trabalhar com a página índex.php.</p>
<p>Já ouviram falar no <strong>Loop do WordPress</strong>? Confiram esse <a href="http://tableless.com.br/o-loop-do-wordpress/">artigo</a> pois vão entender para o que ela serve.</p>
<p>Vamos ao exemplo da página inicial:</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/12/conteudo.jpg" alt="Conteudo para tema no WordPress" width="600" height="578" class="alignnone size-full wp-image-5034" /></p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> get_header<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><br />
&lt;div id=&quot;blog&quot;&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<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> <br />
&lt;section class=&quot;post&quot;&gt; <br />
&lt;h1 class=&quot;title-post&quot;&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: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&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;/h1&gt;<br />
&lt;p&gt;Postado: <span style="color: #000000; font-weight: bold;">&lt;?php</span> the_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'F j, Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> at <span style="color: #000000; font-weight: bold;">&lt;?php</span> the_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'g:i a'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_post_thumbnail<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><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<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> <br />
&lt;/section&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;/div&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_sidebar<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><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_footer<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></div></td></tr></tbody></table></div>
<p>Estude a função <a href="http://codex.wordpress.org/Function_Reference/the_time">the_time()</a> e a forma de <a href="http://codex.wordpress.org/pt-br:Formatando_Data_e_Hora">customizar data e hora dessa função</a>.</p>
<p>A função <strong>the_post_thumbnail </strong>serve para retornar os <a href="http://codex.wordpress.org/Post_Thumbnails">Posts Thumbnails</a>, Caso não tenha interesse, pode remover a função, mas se tiver interesse, aprenda através <a href="http://tableless.com.br/adicionando-post-thumbnail/">desse artigo</a>.
<p>A função get_sidebar() serve para retornar o que está no arquivo sidebar.php, e esclareça suas dúvidas <a href="http://tableless.com.br/criando-sidebar-dinamica-no-wordpress/">nesse artigo</a> para criação de sidebars</p>
<p>Arquivo <strong>sidebar.php</strong></p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;sidebar&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;sidebar&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;?php if<span style="color: #66cc66;">&#40;</span>!function_exists<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'dynamic_sidebar'</span><span style="color: #66cc66;">&#41;</span> || !dynamic_sidebar<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Blog Sidebar&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Não se limite a esse artigo, aprofunde seu conhecimento através da <a href="http://codex.wordpress.org/Template_Tags">documentação disponibilizada pelo WordPress</a>. <strong>“Futuque”</strong> novas funções, pois é assim que se aprende, é quebrando a cara e arriscando. Basta somente ter interesse!</p>
<p>Esperem pelas próximas partes deste artigo, pois vou aprofundar mais esse assunto e pensar no WordPress como um poderoso CMS.</p>
<p>Quero deixar o espaço sempre aberto para quem tiver dúvidas, dar sugestões, criticas construtivas, ect. Podem comentar, enviar email e encher o fórum do Tableless, pois de lá nasceu a idéia para esse artigo e tenho certeza que nascerá os próximos também. </p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/cuidado-com-invasoes-no-wordpress/" title="Cuidado com invasões no WordPress">Cuidado com invasões no WordPress</a></li><li><a href="http://tableless.com.br/estruturacao-de-client-side-designers-e-programadores-parte-2/" title="Estruturação de Client-side – Parte 2: Designers e Programadores">Estruturação de Client-side – Parte 2: Designers e Programadores</a></li><li><a href="http://tableless.com.br/adobe-the-expressive-web/" title="Adobe: The Expressive Web">Adobe: The Expressive Web</a></li><li><a href="http://tableless.com.br/drops-9-preprocessadores-frameworks-e-bibliotecas/" title="Drops 9 &#8211; Préprocessadores, frameworks e bibliotecas">Drops 9 &#8211; Préprocessadores, frameworks e bibliotecas</a></li><li><a href="http://tableless.com.br/estruturacao-de-client-side-preprocessadores-framewoks-e-bibliotecas-parte-1/" title="Estruturação de Client-side &#8211; Parte 1: Préprocessadores, Framewoks e Bibliotecas">Estruturação de Client-side &#8211; Parte 1: Préprocessadores, Framewoks e Bibliotecas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/front-end-concluido-como-comecar-wordpress-parte-i/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Conheça o WP e-Commerce</title>
		<link>http://tableless.com.br/wp-e-commerce/</link>
		<comments>http://tableless.com.br/wp-e-commerce/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 18:32:29 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=4456</guid>
		<description><![CDATA[Integrar uma loja virtual a um site no WordPress ficou mais fácil com o WP e-Commerce]]></description>
			<content:encoded><![CDATA[<p>O WordPress tornou-se uma peça fundamental para desenvolvedores que utilizam deste CMS para solucionar suas demandas. Sua rápida evolução e fácil adaptação fez com que o WordPress não fosse somente projetado para pequenos sites, e sim para grandes projetos. Por causa disso, criou-se uma necessidade de uma possível integração com e-Commerce e a partir de plugins isso é possível. </p>
<p>Hoje existe uma diversidade de plugins para tornar seu site em uma loja virtual. Mas de uma maneira pratica e objetiva, apresento o plugin: <strong>WP e-Commerce</strong>.</p>
<p>O <strong><a href="http://getshopped.org/">WP e-Commerce</a></strong> é o plugin mais popular e prático para transformar o seu site em WordPress em uma loja virtual. Trabalhar com o WordPress já é fácil, trabalhar com o WP e-Commerce é mais fácil ainda.</p>
<h3>5 Motivos para usar o WP e-Commerce</h3>
<ol>
<li>Plugin gratuito, fácil de instalar, altamente personalizável e funciona bem com qualquer tema compatível com o WordPress;
</li>
<li>Disponível em várias línguas, inclusive em português;
</li>
<li>Suporta múltiplas moedas, inclusive o real;
</li>
<li>Além de ter várias formas para pagamento, até com o <a href="http://pagseguro.visie.com.br/plataforma/wordpress/wp-e-commerce/">PagSeguro</a>;
</li>
<li>100% amigável com SEO, e plugins de SEO para WordPress;</li>
</ol>
<p>Tudo isso e muito mais! <a href="http://getshopped.org/features/">Confira a lista completa</a>. Veja também a <a href="http://getshopped.org/resources/video-tutorials/">secção de vídeos</a> explicando tudo sobre o WP-eCommerce.</p>
<p>Além do WP e-Commerce, o <a href="http://shopperpress.com">ShopperPress</a> é uma alternativa para essa integração de lojas virtuais com WordPress.</p>
<h3  class="related_post_title">Mais comentados</h3><ul class="related_post"><li><a href="http://tableless.com.br/editores/" title="Editores">Editores</a></li><li><a href="http://tableless.com.br/quer-testar-o-google-analytics/" title="Quer testar o Google Analytics?">Quer testar o Google Analytics?</a></li><li><a href="http://tableless.com.br/chrome-nao-quer-dizer-muita-coisa/" title="O Chrome não quer dizer muita coisa">O Chrome não quer dizer muita coisa</a></li><li><a href="http://tableless.com.br/desenvolvedor-analfabeto/" title="Desenvolvedor analfabeto (sim, é sobre WYSIWYG)">Desenvolvedor analfabeto (sim, é sobre WYSIWYG)</a></li><li><a href="http://tableless.com.br/nao-otimize-seu-codigo/" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/wp-e-commerce/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Quando utilizar (ou não) frameworks CSS</title>
		<link>http://tableless.com.br/quando-utilizar-ou-nao-frameworks-css/</link>
		<comments>http://tableless.com.br/quando-utilizar-ou-nao-frameworks-css/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 13:08:36 +0000</pubDate>
		<dc:creator>Talita Pagani</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[css layout]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[modularizacao css]]></category>
		<category><![CDATA[tecnicas css]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=4048</guid>
		<description><![CDATA[A utilização de frameworks HTML e/ou CSS ainda é um assunto que divide a opinião dos desenvolvedores.]]></description>
			<content:encoded><![CDATA[<p>Framework é um conjunto de componentes que provêm uma estrutura básica de elementos reutilizáveis, tendo uma arquitetura consistente de funcionalidade genérica sob a qual a aplicação será construída.</p>
<p>No caso de CSS, os frameworks constituem bibliotecas que visam permitir a codificação do CSS de modo mais fácil e compatível com padrões de estilos, agregando uma série de opções já prontas para projetar uma página web, como se fosse um esqueleto, reduzindo o tempo gasto com o desenvolvimento.</p>
<p>Os frameworks CSS geralmente apresentam definições de formatação os elementos mais comuns de uma página: formulários, cabeçalhos, estilos de textos e imagens. Alguns apresentar opções para a estruturação do conteúdo baseado em <em>grids</em>.</p>
<p>A utilização de frameworks HTML e/ou CSS ainda é um assunto que divide a opinião dos desenvolvedores, pois muitos consideram o framework como uma <strong>solução pronta </strong>e acreditam que ele tira o trabalho das mãos do designer/desenvolvedor e faz com que ele não aprimore os seus conhecimentos.</p>
<p><strong>Será que você, sem perceber, nunca criou o seu próprio framework?</strong> Pense em um arquivo CSS padrão (além do <em>reset</em>) que você criou para melhorar a produtividade de seus projetos.</p>
<p>É importante esclarecer que o uso de frameworks <strong>não substitui</strong> a necessidade do designer/ desenvolvedor de desenvolver o CSS do site. Ele apenas fornece uma base para a formatação de elementos comuns e otimiza o trabalho repetitivo.</p>
<h2>Para quem os frameworks são recomendados</h2>
<p>Utilizar um framework CSS não é uma prática recomendada para quem está começando, principalmente por privar a pessoa da prática e do conhecimento sobre o funcionamento do CSS. Além disso, se ela não compreender bem CSS, poderá ter problemas para resolver problemas de layout causados por incompatibilidade entre o framework e um código CSS específico que ela inseriu.</p>
<p>Portanto, é recomendável que frameworks sejam utilizados por quem possui um nível razoável de conhecimento e compreensão do código, mas tem a intenção de otimizar parte do trabalho com o uso de um framework. E isto serve não apenas para quem pretende utilizar um framework CSS, mas também qualquer tipo de framework.</p>
<h2>Quando é interessante utilizar?</h2>
<ul>
<li>Prototipação rápida em HTML</li>
<li>Sites de larga escala e com estruturas similares (como portais, blog/sites no estilo magazine)</li>
<li>Sites construídos através de plataformas de CMS</li>
<li>Projetos que tenham prazos curtos</li>
<li>Projetos realizados em equipe onde há diversas pessoas trabalhando no mesmo CSS, podendo ter um conjunto consistente de padrões de codificação</li>
</ul>
<h3>Vantagens</h3>
<ul>
<li>Padronização de código entre a equipe de desenvolvimento;</li>
<li>Arquivos modularizados;</li>
<li>Flexibilidade de estilos, classes genéricas que podem ser combinadas de diversas formas nos elementos da página;</li>
<li>Geralmente já possuem uma documentação, que pode ser consultada pela equipe em caso de dúvida ou necessidade de solucionar algum problema;</li>
<li>Compatibilidade cross-browser (na maioria dos casos);</li>
<li>Você pode melhorar suas habilidades estudando o framework;</li>
<li>Redução de tempo: o desenvolvedor/designer pode se concentrar mais nos aspectos particulares do site desenvolvido, pois a base está assegurada e não precisa desenvolvê-la do zero;</li>
<li>Reduz futuros esforços de manutenção caso seja necessário resposicionar elementos ou alterar características de renderização (fonte, margens, etc) em diversos elementos.</li>
</ul>
<h3>Desvantagens</h3>
<ul>
<li>Quantidade excessiva de modificações que devem ser feitas para adaptar o framework;</li>
<li>O framework pode conter códigos irrelevantes que nunca serão utilizados no projeto e serão carregados sem necessidade, podendo diminuir o desempenho da página;</li>
<li>Nem sempre o código é bem organizado;</li>
<li>Muitos frameworks apresentam classes pouco semânticas (ex.: span-5).</li>
</ul>
<h2>Algumas dicas para melhorar o uso do framework</h2>
<p>Como as classes geralmente não apresentam muita semântica, procure colocar IDs significativos nos elementos da página, quando possível.</p>
<p>Você também pode optar por utilizar somente uma parte do framework. Em projetos em que utilizei o <a title="Blueprint CSS" href="http://www.blueprintcss.org/" target="_blank">Blueprint CSS</a>, muitas vezes utilizava apenas algumas folhas de estilos do framework que se adequavam ao que eu necessitava.</p>
<p><strong>Dica:</strong> evite usar vários frameworks CSS em um mesmo projeto. Isto quebra a ideia de consistência, uma vez que cada framework tem o seu padrão de estruturação.</p>
<h2>Como escolher o framework?</h2>
<ul>
<li>Verificar se é realmente necessário o uso de um framework CSS no projeto;</li>
<li>Avaliar se o código do framework escolhido tem uma estrutura e organização;</li>
<li>Avaliar se há código excessivo que nunca será utilizado;</li>
<li>Conferir se há uma boa documentação;</li>
<li>Verificar se os recursos do framework são adequados ao que você necessita para o projeto. Não adianta utilizar um framework CSS focado em renderização quando seria mais útil um framework de grid.</li>
</ul>
<p>Frameworks CSS, se bem utilizados, podem trazer muitos benefícios para seus projetos, basta saber como explorar o potencial que eles possuem <img src='http://tableless.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Referências</h3>
<p>Why you should NOT use a web framework - <a href="http://checkedexception.blogspot.com/2010/04/why-you-should-not-use-web-framework.html">http://checkedexception.blogspot.com/2010/04/why-you-should-not-use-web-framework.html</a></p>
<p>To use a framework, or not to: that is the question - <a href="http://www.phparch.com/2010/04/to-use-a-framework-or-not-to-that-is-the-question/">http://www.phparch.com/2010/04/to-use-a-framework-or-not-to-that-is-the-question/</a></p>
<p>Please do not Use CSS Frameworks - <a href="http://mondaybynoon.com/2007/08/27/please-do-not-use-css-frameworks/">http://mondaybynoon.com/2007/08/27/please-do-not-use-css-frameworks/</a></p>
<p>Which CSS Grid Framework Should You Use for Web Design? - <a href="http://net.tutsplus.com/tutorials/html-css-techniques/which-css-grid-framework-should-you-use-for-web-design/">http://net.tutsplus.com/tutorials/html-css-techniques/which-css-grid-framework-should-you-use-for-web-design/</a></p>
<p>When to use CSS framework? - <a href="http://www.vcarrer.com/2008/08/when-to-use-css-framework.html">http://www.vcarrer.com/2008/08/when-to-use-css-framework.html</a></p>
<p>WHAT’S NOT TO LOVE ABOUT CSS FRAMEWORKS? - <a href="http://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/">http://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/</a></p>
<p>Frameworks for Designers - <a href="http://www.alistapart.com/articles/frameworksfordesigners">http://www.alistapart.com/articles/frameworksfordesigners</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/biblioteca-css-ou-framework/" title="Biblioteca CSS ou Framework?">Biblioteca CSS ou Framework?</a></li><li><a href="http://tableless.com.br/escalabilidade-client-side/" title="Escalabilidade client-side">Escalabilidade client-side</a></li><li><a href="http://tableless.com.br/digest-0409-css-html-e-layout/" title="Digest 04/09: CSS, HTML e Layout">Digest 04/09: CSS, HTML e Layout</a></li><li><a href="http://tableless.com.br/criando-um-menu-horizontal-com-css/" title="Criando um Menu Horizontal com CSS">Criando um Menu Horizontal com CSS</a></li><li><a href="http://tableless.com.br/css-frameworks-ou-como-desaprender-css/" title="CSS Frameworks ou como desaprender CSS">CSS Frameworks ou como desaprender CSS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/quando-utilizar-ou-nao-frameworks-css/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Melhorando carregamento do WordPress</title>
		<link>http://tableless.com.br/melhorando-carregamento-wordpress/</link>
		<comments>http://tableless.com.br/melhorando-carregamento-wordpress/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 13:00:47 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[carregamento]]></category>
		<category><![CDATA[comprimir arquivos]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[otimização de imagens]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[wp-minify]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3785</guid>
		<description><![CDATA[Aprenda dicas úteis para deixar seu site em WordPress mais rápido. Facilitando a vida do usuário e melhorando resultados nos mecanismos de busca.]]></description>
			<content:encoded><![CDATA[<p><!--a href="http://tableless.com.br/wp-content/uploads/2011/05/site-speed.png"><img src="http://tableless.com.br/wp-content/uploads/2011/05/site-speed.png" alt="Velocidade do site" width="400" height="300" class="alignnone size-full wp-image-3788" /></a><br />
<em>(Imagem retirada de http://www.netpaths.net/blog/how-to-increase-site-speed-for-google-page-load-algorithm/, em 02/06/11 às 21:06)</em--></p>
<p>A web cresceu, e com isso várias tecnologias e ferramentas foram criadas ou melhoradas para suprir necessidades requisitadas pelos usuários. Ao longo do tempo clientes e usuários vão pedindo sites mais bonitos e atraentes, e também exigindo rapidez. Para quem usa WordPress, existe aperfeiçoamento e acertos para deixar ele mais rápido. Já para quem não usa, lamento, mas é bom prestar atenção algumas dicas, pois podem servir.</p>
<h3>Comprima HTML, CSS e JS</h3>
<p>Comprimir arquivos é essencial para reduzir o seu tamanho e melhorar o carregamento, pois menor é o seu tamanho, melhor e mais rápido ele vai abrir.</p>
<p>Para isso, usa-se o WP-Minify, este plug-in auxilia na compressão destes arquivos. <a href="http://wordpress.org/extend/plugins/wp-minify/" title="Baixe WP-Minify">Baixe WP-Minify</a>, instale e ative as opções de compressão de que desejar.</p>
<p><strong>Atenção:</strong> Ativando a compressão de HTML, se o seu código não estiver todo identado, não se espante. Quer uma dica? Se fores assim como eu, ative apenas a compressão do CSS e JS.</p>
<h3>Otimize suas imagens</h3>
<p>Por uma necessidade de sites bonitos, na maioria das vezes há um uso excessivo de imagens que na maioria das vezes estão mal otimizadas com alta qualidade.</p>
<p>Tente reduzir o tamanho das imagens do seu site sem que se atinja tanto a sua qualidade. Seja um background ou uma imagem qualquer.</p>
<p>Para reduzir o tamanho de imagens enviadas via WordPress, utilize o <a href="http://wordpress.org/extend/plugins/wp-smushit/" title="plug-in WP Smush.it">plug-in WP Smush.it</a></p>
<h3>Use um Plug-in de Cache</h3>
<p>Sempre é bom ter um plug-in de cache ativado no WordPress, como já citei no artigo “<a href="http://tableless.com.br/otimizando-site-wordpress-seo" title="Otimizando seu site em WordPress para SEO">Otimizando seu site em WordPress para SEO</a>”, o plug-in de cache, também ajuda no carregamento das páginas.</p>
<p>Re-indico <a href="http://wordpress.org/extend/plugins/wp-super-cache/" title="WP Super Cache">WP Super Cache</a>, <a href="http://wordpress.org/extend/plugins/wp-super-cache/" title="W3 Total Cache">W3 Total Cache</a>, <a href="http://wordpress.org/extend/plugins/batcache/" title="Batcache">Batcache</a> ou <a href="http://wordpress.org/extend/plugins/hyper-cache/" title="Hyper Cache">Hyper Cache.</a></p>
<h3>Dicas úteis</h3>
<ol style="margin-top: 10px">
<li><strong>Estrutura dos códigos:</strong> A estrutura do código também interfere, seja ele HTML, CSS ou JS. Para HTML, faça um código semântico, sem muitas gambiarras. Confira esse <a href="http://tableless.com.br/6-estrategias-para-melhorar-a-organizacao-do-seu-css-2" title="artigo para melhorar organização do código CSS">artigo para melhorar organização do código CSS</a>, que vai ajudar muito.</li>
<li><strong>Boa hospedagem:</strong> Ter um servidor com melhor qualidade ajuda muito no carregamento. Escolhendo uma boa hospedagem, tente também conter quedas no servidor.
</li>
<li><strong>Desative plug-ins desnecessários:</strong> É relevante desativar plug-ins desnecessários ou sem muita utilidade, pois seus arquivos quando requisitados vão ser acionados, aumentando o carregamento final.</li>
<li><strong>Evite muitas requisições:</strong> Evite requisições desnecessárias, seja ela de CSS, JS ou até mesmo de outras páginas.</li>
<li><strong>Mantenha seu WordPress atualizado:</strong> As atualizações do WordPress não vem em vão, pois tem sua importância. Atualizando, você vai melhorar o desempenho, além de evitar vulnerabilidades, aumentando a segurança.</li>
</ol>
<h3>Vamos Refletir</h3>
<p><strong>Repare&#8230;</strong> Ter um site bonito, nem sempre é ter um site pesado. Se prestarmos atenção, melhora-se muita coisa no site. Fique atento, pois por alguns milésimos você perder um usuário e/ou ficar com uma posição indesejada nos mecanismos de busca.</p>
<p><strong>Com o CSS3</strong>, muita coisa vai melhorar. Muita coisa será substituída com os novos elementos. Uma pena que não virou padrão ainda, nos deixa mais triste saber que vai demorar até virar padrão. <em>(Mesmo assim)</em>, seja ousado e use alguns elementos.</p>
<p><strong>Relação com SEO:</strong> Demonstrei certa preocupação com o SEO se tratando deste assunto, pois o carregamento da página vai interferir no seu posionamento em mecanismos de busca, em especial o Google. </p>
<p>Você pode analisar, através da <a href="http://code.google.com/speed/page-speed/" title="ferramenta do Google Page Speed">ferramenta do Google &#8211; Page Speed</a>, a velocidade no carregamento do site. Se você usa Google Analytics, segue uma <a href="http://www.domicioneto.com/web-analytics/google-analytics/trackpageloadtime-monitorar-carregamento-google-analytics/" title="dica para analisar o carregamento do site">dica para analisar o carregamento do site</a>.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/otimizando-site-wordpress-seo/" title="Otimizando seu site em WordPress para SEO">Otimizando seu site em WordPress para SEO</a></li><li><a href="http://tableless.com.br/adobe-the-expressive-web/" title="Adobe: The Expressive Web">Adobe: The Expressive Web</a></li><li><a href="http://tableless.com.br/cuidado-com-invasoes-no-wordpress/" title="Cuidado com invasões no WordPress">Cuidado com invasões no WordPress</a></li><li><a href="http://tableless.com.br/qualidade-de-imagens-e-densidade-de-pixels/" title="Qualidade de Imagens e densidade de pixels">Qualidade de Imagens e densidade de pixels</a></li><li><a href="http://tableless.com.br/usando-meta-box-em-seu-tema-wordpress/" title="Usando Meta Box em seu tema WordPress">Usando Meta Box em seu tema WordPress</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/melhorando-carregamento-wordpress/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Posts Formats do WordPress</title>
		<link>http://tableless.com.br/posts-formats-do-wordpress/</link>
		<comments>http://tableless.com.br/posts-formats-do-wordpress/#comments</comments>
		<pubDate>Wed, 18 May 2011 12:59:34 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3659</guid>
		<description><![CDATA[O WordPress teve sua última atualização para a versão 3.1, dentre as novidades, está a inclusão de post formats em tipos de conteúdo. Com essa função, você pode deixar o WordPress com um toque de Tumblr.]]></description>
			<content:encoded><![CDATA[<p>O WordPress depois de sua atualização para versão 3.1, trouxe uma função de Formato nos Posts, que consiste em personalizar a visualização do post. É uma funcionalidade para temas, que oferece uma lista de formatos que estão disponíveis. São suportados os seguintes formatos:</p>
<ul>
<li>aside</li>
<li>gallery</li>
<li>link</li>
<li>image</li>
<li>quote</li>
<li>status</li>
<li>video</li>
<li>audio</li>
<li>chat</li>
</ul>
<p>Esses formatos são padrões, até hoje não se tem maneiras para criar um novo tipo de formato. </p>
<h3>Ativando o suporte aos Posts Formats</h3>
<p>Para ativar o suporte, adicione este seguinte código no arquivo <strong>functions.php</strong> do seu tema:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_theme_support<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post-formats'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'aside'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'gallery'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'link'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'image'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Não é obrigatório usar todos os formatos, e sim os quais você achar necessário. Caso queria adicionar mais formatos, adicione dentro do array os formatos disponíveis na lista acima.</p>
<p>Com este código, só é adicionado o suporte para o conteúdo de Posts, caso queria adicionar em outros tipos de conteúdo, adicione o seguinte código:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> add_post_type_support<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post-formats'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Essa função habilita o suporte para outros tipos de conteúdo, no primeiro parâmetro defini-se o nome do conteúdo e no segundo, o tipo de suporte. </p>
<p>Após ativar o suporte, terás dentro da edição do seus posts, um espaço feito esse para edição dos Posts Formats.</p>
<p><img src="http://tableless.com.br/wp-content/uploads/2011/04/edicao.jpg" alt="" width="281" height="130" class="alignnone size-full wp-image-3669" /></p>
<h3>Personalizando o retorno dos formatos</h3>
<p>Para especificar o suporte, utilizamos formatos padrões. Mas como ele vai ser visualizado, como ele vai ser interpretado, é você quem vai definir.</p>
<p>Um exemplo simples de manipulação dos formatos (como isso é um post, este código deve ser adicionado no loop) :</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> has_post_format<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'link'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <br />
&nbsp; &nbsp;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_the_content<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; 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;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span>has_post_format<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'image'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&nbsp; &nbsp;&lt;img src=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_the_content<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; 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; alt=&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;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>A função <strong>has_post_format</strong>, é um tipo de <a href="http://tableless.com.br/tags-condicionais-do-wordpress" title="Guia de Referência de Tags Condicionais | Tableless">tag condicional</a> que verifica qual o tipo formato visualizado.</p>
<p>No exemplo acima, utilizei os dados enviados pelo content como um link para algum site ou link para leitura de imagem.</p>
<p><strong>Dica: </strong>Se for usar este exemplo, antes de postar, utilize a aba de editor HTML para evitar qualquer tipo de formatação, e use <strong>get_the_content</strong> para retornar o que foi enviado pelo editor, para também evitar qualquer tipo de formatação e retornar somente a informação enviada.</p>
<p>Você pode personalizar este retorno das maneiras que quiser. Se for usar esta função, seja mais criativo possível, explorando o máximo que essa função tem para oferecer.</p>
<p>Caso tenha maiores dúvidas, consulte o <a href="http://codex.wordpress.org/Post_Formats" title="Codex de Posts Formats">codex de Posts Formats</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/tags-condicionais-do-wordpress/" title="Tags Condicionais do WordPress">Tags Condicionais do WordPress</a></li><li><a href="http://tableless.com.br/custom-post-types-wordpress/" title="Custom Post Types no WordPress">Custom Post Types no WordPress</a></li><li><a href="http://tableless.com.br/otimizando-site-wordpress-seo/" title="Otimizando seu site em WordPress para SEO">Otimizando seu site em WordPress para SEO</a></li><li><a href="http://tableless.com.br/criando-menus-no-wordpress/" title="Criando Menus no WordPress">Criando Menus no WordPress</a></li><li><a href="http://tableless.com.br/criando-sidebar-dinamica-no-wordpress/" title="Criando Sidebar Dinâmica no WordPress">Criando Sidebar Dinâmica no WordPress</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/posts-formats-do-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tags Condicionais do WordPress</title>
		<link>http://tableless.com.br/tags-condicionais-do-wordpress/</link>
		<comments>http://tableless.com.br/tags-condicionais-do-wordpress/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 13:00:48 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[condições]]></category>
		<category><![CDATA[tags condicionais]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3459</guid>
		<description><![CDATA[As Tags Condicionais são usadas para manipular o conteúdo exibido ou especificar informações na página]]></description>
			<content:encoded><![CDATA[<p>As Tags Condicionais são funções próprias do WordPress capazes de manipular todo o conteúdo de sua página. Com elas, você ganha aquele tempo que iria perder criando aquelas condições para retornar seus valores de maneira personalizada. Geralmente retornam o valor em Booleano, ou seja, TRUE (verdadeiro) ou FALSE (falso).</p>
<h3>Como usar?</h3>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>tag_condicional<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//se verdadeiro, retorne isso</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//se falso, retorne isso</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Tags que podem receber parâmetros dentro de sua função, ex:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>tag_condicional<span style="color: #009900;">&#40;</span>‘valor’<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//se verdadeiro, retorne isso</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//se falso, retorne isso</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>A tabela abaixo que encontrei no livro WordPress 3, é basicamente um mini-guia das tags que precisam de parâmetros e das que não precisam.</p>
<table summary="Guia básico de Tags Condicionais" style="width: 90%;text-align: center">
<thead>
<tr>
<th>Condicional</th>
<th>ID</th>
<th>Slug</th>
<th>Título</th>
<th>Array</th>
<th>Outro</th>
</tr>
</thead>
<tbody>
<tr>
<td style="font-weight: bold">is_single</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_sticky</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_page</td>
<td>X</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_page_template</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Nome do arquivo</td>
</tr>
<tr>
<td style="font-weight: bold">is_category</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">in_category</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_tag</td>
<td></td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">has_tag</td>
<td></td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_tax</td>
<td></td>
<td>X</td>
<td>X</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">is_author</td>
<td>X</td>
<td>Nome do usuário</td>
<td>Nickname</td>
<td>X</td>
<td></td>
</tr>
<tr>
<td style="font-weight: bold">has_excerpt</td>
<td>X</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th colspan="6">As tags seguintes não aceitam argumentos; elas são verdadeiras se o modelo de arquivo correspondente está sendo usado para exibir a página atual.</th>
</tr>
<tr>
<td>is_home</td>
<td>is_search</td>
<td>is_day</td>
<td>is_feed</td>
<td>is_404</td>
<td>is_comments_popup</td>
</tr>
<tr>
<td>is_front_page</td>
<td>is_time</td>
<td>is_month</td>
<td>is_attachment</td>
<td>is_trackback</td>
<td>is_active_sidebar</td>
</tr>
<tr>
<td>is_archive</td>
<td>is_date</td>
<td>is_year</td>
<td>is_singular</td>
<td>is_preview</td>
<td>is_admin</td>
</tr>
<tr>
<th colspan="6">As tags seguintes não aceitam argumentos. Elas retornam informações sobre a página que está sendo visualizada.</th>
</tr>
<tr>
<td>comments_open</td>
<td>pings_open</td>
<td>is_paged</td>
<td>in_the_loop</td>
</tr>
</tbody>
</table>
<p>Para melhorar o conteúdo e o aprendizado, criei um <a href="http://tableless.github.com/exemplos/guia-tags-condicionais-wp/index.html" title="Guia de Referência das Tags Condicionais do WordPress" rel="external">Guia de Referência das Tags Condicionais do WordPress</a>.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/posts-formats-do-wordpress/" title="Posts Formats do WordPress">Posts Formats do WordPress</a></li><li><a href="http://tableless.com.br/custom-post-types-wordpress/" title="Custom Post Types no WordPress">Custom Post Types no WordPress</a></li><li><a href="http://tableless.com.br/otimizando-site-wordpress-seo/" title="Otimizando seu site em WordPress para SEO">Otimizando seu site em WordPress para SEO</a></li><li><a href="http://tableless.com.br/criando-menus-no-wordpress/" title="Criando Menus no WordPress">Criando Menus no WordPress</a></li><li><a href="http://tableless.com.br/criando-sidebar-dinamica-no-wordpress/" title="Criando Sidebar Dinâmica no WordPress">Criando Sidebar Dinâmica no WordPress</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/tags-condicionais-do-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Custom Post Types no WordPress</title>
		<link>http://tableless.com.br/custom-post-types-wordpress/</link>
		<comments>http://tableless.com.br/custom-post-types-wordpress/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 13:00:57 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[custom post types]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3332</guid>
		<description><![CDATA[Crie tipos de conteúdo diferentes, agregue taxonomias e adicione campos personalizados. Deixe o seu site cada vez mais personalizado, trabalhando a fundo com o WordPress como CMS.]]></description>
			<content:encoded><![CDATA[<p>Custom Post Types é a função que manipula os tipos de conteúdo no WordPress, ou seja, pode-se criar conteúdos personalizados a partir da sua demanda. Isso é uma das provas mais concretas que temos hoje um CMS muito forte que não serve apenas para criar blog e/ou sites de pequeno porte.</p>
<h3>Criando Custom Post Types</h3>
<p>Como o assunto é muito amplo, criarei com vocês um exemplo de Notícias. </p>
<p>Em functions.php, adicione:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'init'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'type_post_noticias'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> type_post_noticias<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$labels</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> _x<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Notícias'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post type general name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'singular_name'</span> <span style="color: #339933;">=&gt;</span> _x<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Notícia'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post type singular name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'add_new'</span> <span style="color: #339933;">=&gt;</span> _x<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Adicionar Novo'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Novo item'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'add_new_item'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Novo Item'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'edit_item'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Editar Item'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'new_item'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Novo Item'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'view_item'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Ver Item'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'search_items'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Procurar Itens'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'not_found'</span> <span style="color: #339933;">=&gt;</span> &nbsp;__<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Nenhum registro encontrado'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'not_found_in_trash'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Nenhum registro encontrado na lixeira'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'parent_item_colon'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'menu_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Notícias'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$args</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'labels'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$labels</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'public'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'public_queryable'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'show_ui'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'query_var'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'rewrite'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'capability_type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'has_archive'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'hierarchical'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'menu_position'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><br />
<span style="color: #0000ff;">'register_meta_box_cb'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'noticias_meta_box'</span><span style="color: #339933;">,</span>&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'supports'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'editor'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'thumbnail'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'comments'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'excerpt'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'custom-fields'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'revisions'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'trackbacks'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
register_post_type<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'noticias'</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$args</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
flush_rewrite_rules<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Primeiro adicionamos a função <strong>add_action</strong>, que vai abrigar dois parâmetros, o gancho (aonde vai rodar a função) e a função callback (a função que vai ser chamada com as informações). É função <strong>type_post_noticias</strong> que vai armazenar as informações do post. A variável <strong>$labels</strong>, está indicando os valores para cada título.</p>
<p>A variável <strong>$args</strong> é onde vamos colocar as informações do post. Explico com mais detalhes abaixo.</p>
<ul>
<li><strong>labels:</strong> Indica a variável que contém as informações do label</li>
<li><strong>public:</strong> determina se o conteúdo pode ser visto no painel de administração, por padrão é falso.</li>
<li><strong>publicly_queryable:</strong> determina se a consulta pode ser realizada usando o argumento post_type, por padrão ele herda o valor do public.</li>
<li><strong>show_ui:</strong> determina se telas de adicionar e editar o post devem ser adicionadas esse tipo de post, por padrão ele herda o valor do public.</li>
<li><strong>query_var:</strong> evita consultas ou valores de sequência, por padrão é falso.</li>
<li><strong>rewrite:</strong> reescrita do link, por padrão é verdadeiro.</li>
<li><strong>capability_type:</strong> define o tipo de conteúdo que o tipo de post personalizado vai seguir, por padrão é post.</li>
<li><strong>has_archive:</strong> permite os arquivos do tipo do post, por padrão é falso.</li>
<li><strong>hierarchial:</strong> determina que o tipo do post é hierárquico (igual o das páginas), por padrão o valor é falso</li>
<li><strong>menu_position:</strong> determina a ordem do menu, por padrão é null (ele ficará em baixo do menu dos comentários), mas pode receber esses seguintes valores
<ul>
<li><strong>5</strong> – Em baixo do menu Post;</li>
<li><strong>10</strong> – Em baixo do menu mídia;</li>
<li><strong>20</strong> – Em baixo do menu páginas;</li>
<li><strong>60</strong> – Em baixo do primeiro separador;</li>
<li><strong>100</strong> – Em baixo do segundo separador.</li>
</ul>
</li>
<li><strong>register_meta_box_cb:</strong> Retorna a função que chamará as caixas de meta para o formulário (irei explicar à frente).<br />
supports: determina os recursos aceitos para esse tipo de post, por padrão é vazio, por isso tem que definir, ele recebe esses valores:</p>
<ul>
<li><strong>author:</strong> o autor por uma área personalizada</li>
<li><strong>title:</strong> inclui o título ao tipo do post</li>
<li><strong>editor:</strong> inclui a área de conteúdo do post (VISUAL ou HTML) e uploader de mídia</li>
<li><strong>excerpts:</strong> inclui o campo de resumo</li>
<li><strong>thumbnail:</strong> determina se o tipo de post pode inlcuir  miniatura de post (http://tableless.com.br/adicionando-post-thumbnail)</li>
<li><strong>comments:</strong> inclui os comentários</li>
<li><strong>trackbacks:</strong> inclui os trackbacks</li>
<li><strong>custom-fields:</strong> inclui a baixa de Custom Fields e se os campos serão automaticamente salvos</li>
<li><strong>revisions:</strong> inclui revisões (armazenadas ou exibidas)</li>
<li><strong>page-attributes:</strong> inclui a caixa Page Attributes (são encontradas na inserção de páginas), contendo as opções de parent, template e menu order.</li>
</ul>
</li>
</ul>
<p>Para o registro do post, é necessário a função <strong>register_post_type</strong>, que abrigará dois parâmetros. No primeiro é definido o nome do post (de preferência coloque em letras minúsculas e sem espaço, uma slug) e o outro agregará as demais informações do post, neste caso, a variável $args.</p>
<h3>Criando Taxonomias</h3>
<p>A taxonomia é uma forma de criar um tipo de categoria para o tipo de conteúdo.</p>
<p>Adicione em functions.php: </p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
register_taxonomy<span style="color: #009900;">&#40;</span><br />
<span style="color: #0000ff;">&quot;categorias&quot;</span><span style="color: #339933;">,</span> <br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;noticias&quot;</span><span style="color: #339933;">,</span> <br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;label&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Categorias&quot;</span><span style="color: #339933;">,</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;singular_label&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Categoria&quot;</span><span style="color: #339933;">,</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;rewrite&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;hierarchical&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><br />
<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Com a função <strong>register_taxonomy</strong>, registramos uma nova taxonomia. O primeiro valor aonde será definido o nome da taxonomia (de preferência de letras minúsculas e sem espaço), o segundo valor é definido o nome do tipo de conteúdo registrado, onde essa taxonomia se agregará. No array, é definido informações já explicadas acima.</p>
<h3>Criando campos personalizados</h3>
<p>Vamos trabalhar com a variável <strong>register_meta_box</strong> na criação de campos personalizados. Para essa variável, foi definido o valor <strong>noticias_meta_box</strong>, que será a nossa função callback, a função que vai ser chamada para a criação da meta. </p>
<p>Em functions.php adicione:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">function</span> noticias_meta_box<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meta_box_test'</span><span style="color: #339933;">,</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Meta Box'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_box_meta_test'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'noticias'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'side'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Retornamos a função definida para a criação de meta box, dentro dela definimos na função add_meta_box, os argumentos respectivamente, são:</p>
<ul>
<li><strong>$id:</strong> o nome para o meta box, destinado para uso interno</li>
<li><strong>$title:</strong> o título da caixa</li>
<li><strong>$callback:</strong> a função que irá ser chamada para imprimir o conteúdo da caixa</li>
<li><strong>$page:</strong> o tipo de post que vão existir esse meta, para aparecer em mais de um, coloque dentro de um array, ex: array(‘noticias’, ‘post’)</li>
<li><strong>$context:</strong> em qual parte da página de edição ela vai está (normal, advanced ou side [lateral])</li>
<li><strong>$priority:</strong> em qual altura a caixa deve aparecer dentro da seção (high [alta], normal, low[baixa), a depender do valor, caixas com prioridade maior ficará encima</li>
</ul>
<p>Depois que definimos a meta, vamos agora retornar a função que vai imprimir o conteúdo da caixa:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">function</span> meta_box_meta_test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$metaBoxValor</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;">'valor_meta'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #000000; font-weight: bold;">?&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &lt;label for=&quot;inputValorMeta&quot;&gt;Valor: &lt;/label&gt;<br />
&nbsp; &nbsp; &lt;input type=&quot;text&quot; name=&quot;valor_meta&quot; id=&quot;inputValorMeta&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$metaBoxValor</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>A função foi criada, dentro dela imprimi-se o que o Box vai conter. Para garantir que o campo retornado é necessário usar a função <strong>get_post_meta</strong>. Ela requer três argumentos: o ID do post, o nome do campo (se possível sem acentos e nem espaços) e um valor true/false determinando se a função deve retornar um valor individual ou não.</p>
<p>Por fim criaremos a função que vai salvar as alterações dos campos personalizados:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'save_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'save_noticias_post'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> save_noticias_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; update_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;">'valor_meta'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'valor_meta'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Inicialmente adicionamos a ação no gancho <strong>save_post</strong> com o retorno da função <strong>save_noticias_post</strong>. A função <strong>update_post_meta</strong> vai receber três argumentos, os dois primeiros serão iguais aos explicados na função <strong>get_post_meta</strong>, a única diferença que o ultimo argumento vai receber o valor alterado, caso seja alterado manualmente colocamos uma simples string com o outro valor. Neste caso a alteração será feita após o envio do formulário.</p>
<h3>Criando um LOOP personalizado</h3>
<p>Vamos criar o LOOP personalizado de acordo com o tipo de post, caso ainda não tenha visto o que seja um LOOP, <a href="http://tableless.com.br/o-loop-do-wordpress" title="O Loop do WordPress - Tableless">veja</a></p>
<p>Aonde queria que aparecesse a repetição, adicione:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <br />
<span style="color: #000088;">$newsArgs</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'post_type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'noticias'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'posts_per_page'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$newsLoop</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> WP_Query<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$newsArgs</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$newsLoop</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">have_posts</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$newsLoop</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">the_post</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;div class=&quot;news&quot;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;h1&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: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&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;/h1&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;&lt;strong&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'F jS, Y'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/strong&gt; by <span style="color: #000000; font-weight: bold;">&lt;?php</span> the_author_posts_link<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<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;/p&gt;<br />
&lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_the_term_list<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;">'categorias'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Categorias: '</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;p&gt;Retornando o campo personalizado: <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</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;">'valor_meta'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
&lt;/div&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>O único termo desconhecido no Loop é a função <strong>get_the_term_list</strong>, que vai retornar a taxonomia para o post. O primeiro argumento é o valor do ID do post, o segundo valor é o nome definido da taxonomia, o terceiro valor é o que vai retonar antes de retornar as taxonomias e o último o separador.</p>
<p>Não há dificuldade, o segredo está na variável <strong>$newsArgs</strong>, que é aonde você vai definir as opções da repetição, ele pode receber mais argumentos, que você pode ver em: http://codex.wordpress.org/Function_Reference/WP_Query</p>
<p>Para visualizar um post, editamos as informações no arquivo <strong>single.php</strong> do nosso tema, quando temos um Custom Post Type, por padrão ele lê com essa página, caso queria ter uma pagina só para o tipo de post, você pode uma nova página chamada <strong>single-{slug}.php</strong>, ou seja, essa slug seria trocada pelo nome do Custom Post Type, no nosso caso, <strong>single-noticias.php</strong>.</p>
<h3>Feeds para tipos de post personalizado</h3>
<p>Se seu site existe muitos leitores via feed e você quer mostrar o conteúdo personalizado, como fazer? Lendo um livro, WordPress 3 Básico (livro que indico para iniciantes ou desenvolvedores natos), achei essa solução, muito simples. </p>
<p>Em functions.php, adicione:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pre_get_posts'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'postsfeed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> postsfeed<span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> is_feed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post_type'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'noticias'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$query</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>No código vamos adicionar o filtro para a consulta de conteúdo para o Feed, você pode adicionar inúmeros conteúdos personalizados.</p>
<h3>Reduzindo o código</h3>
<p>Existe mesmo a necessidade para registrar o Custom Post Type a quantidade de argumentos que foi mostrado? Não.</p>
<p>Neste artigo fez questão de mostrar a maioria das variáveis, mas você pode reduzir o código ainda mais em futuras alterações. Em vez de registrar o seu conteúdo com aquele código enorme, pode-se substituir por:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'init'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'type_post_noticias'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> type_post_noticias<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$labels</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> _x<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Notícias'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'post type general name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'singular_name'</span> <span style="color: #339933;">=&gt;</span> _x<span style="color: #009900;">&#40;</span>Notícia<span style="color: #0000ff;">', '</span>post type singular name<span style="color: #0000ff;">')<br />
&nbsp; &nbsp; &nbsp; &nbsp; );<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '</span>labels<span style="color: #0000ff;">' =&gt; $labels,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '</span><span style="color: #000000; font-weight: bold;">public</span><span style="color: #0000ff;">' =&gt; true, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '</span>register_meta_box_cb<span style="color: #0000ff;">' =&gt; '</span>noticias_meta_box<span style="color: #0000ff;">',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '</span>supports<span style="color: #0000ff;">' =&gt; array('</span>title<span style="color: #0000ff;">','</span>editor<span style="color: #0000ff;">','</span>thumbnail<span style="color: #0000ff;">','</span>comments<span style="color: #0000ff;">', '</span>excerpt<span style="color: #0000ff;">', '</span>custom<span style="color: #339933;">-</span>fields<span style="color: #0000ff;">', '</span>revisions<span style="color: #0000ff;">', '</span>trackbacks<span style="color: #0000ff;">')<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />
&nbsp;<br />
&nbsp; &nbsp; register_post_type( '</span>noticias<span style="color: #0000ff;">' , $args );<br />
&nbsp; &nbsp; flush_rewrite_rules(); &nbsp;<br />
?&gt;</span></div></td></tr></tbody></table></div>
<p>Ambas as formas estão corretas. </p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/adicionando-post-thumbnail/" title="Adicionando Post Thumbnail">Adicionando Post Thumbnail</a></li><li><a href="http://tableless.com.br/posts-formats-do-wordpress/" title="Posts Formats do WordPress">Posts Formats do WordPress</a></li><li><a href="http://tableless.com.br/tags-condicionais-do-wordpress/" title="Tags Condicionais do WordPress">Tags Condicionais do WordPress</a></li><li><a href="http://tableless.com.br/otimizando-site-wordpress-seo/" title="Otimizando seu site em WordPress para SEO">Otimizando seu site em WordPress para SEO</a></li><li><a href="http://tableless.com.br/criando-menus-no-wordpress/" title="Criando Menus no WordPress">Criando Menus no WordPress</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/custom-post-types-wordpress/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Otimizando seu site em WordPress para SEO</title>
		<link>http://tableless.com.br/otimizando-site-wordpress-seo/</link>
		<comments>http://tableless.com.br/otimizando-site-wordpress-seo/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 11:59:54 +0000</pubDate>
		<dc:creator>Paulo Rodrigues</dc:creator>
				<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[Akismet]]></category>
		<category><![CDATA[All in One SEO Pack]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[otimização de sites]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[sitemaps]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=3152</guid>
		<description><![CDATA[Vamos ver como podemos aperfeiçoar seu site em WordPress para SEO e veja a importância de fazer isso.]]></description>
			<content:encoded><![CDATA[<p>Uma característica que defina o WordPress é a <strong>customização</strong>. Em poucas linhas conseguimos soluções significantes. Seja trabalhando com suas funções ou com seus plugins, temos resultados objetivos para preparar um Blog e até mesmo um site de grande porte, como temos hoje, vários exemplos disso.</p>
<p>Elogiam muito o WordPress por ele ter uma facilidade para <a href="http://www.oitobitdigital.com.br/servico/otimizacao-de-sites-seo/">otimização de sites</a> (SEO). Antes de começarem a ler as dicas que vou citar, faça a seguinte reflexão: O que é um site hoje, sem ser bem indexado pelos mecanismos de busca?</p>
<h3>Melhore a tag title do seu site</h3>
<p>Você acha mesmo que a tag de título do seu site não tem importância? Espero que não, pois é com ela que os mecanismos de busca reconhecem uma das primeiras informações do seu site.</p>
<p>Coloque o seu título da seguinte forma: </p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_title<span style="color: #009900;">&#40;</span>“<span style="color: #339933;">|</span>”<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> ‘right’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span style="color: #009900;">&#40;</span>‘name’<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;</div></td></tr></tbody></table></div>
<p>A função <strong>wp_title</strong> imprime vários resultados a depender da sua página.</p>
<h3>Links permanentes (Permalinks)</h3>
<p>Quem usa WordPress e não usa essa função básica, não sabe o que está perdendo. A URL também tem uma função importante para indexação de sites, pois também é reconhecido antes da página ser carregada. O seu site sairia na frente de diversas URL’s que usam aqueles parâmetros grandes e sem semântica.</p>
<p>Dentro de seu painel de administração, procure por Settings (Configurações) e depois Links Permanentes (Permalinks). Selecione a opção Custom Structure (Estrutura Personalizada) e altere sua estrutura para: </p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/%category%/%postname%/</div></td></tr></tbody></table></div>
<h3>Otimizando as metas do seu site</h3>
<p>Para otimizar as metas, utilize o plug-in <a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" title="Plug-in All in One SEO Pack">All in One SEO Pack</a>, com esse plug-in conseguimos facilmente manipular as metas e também títulos do site. Com ele, alteram-se as metas de descrição e keywords (palavras-chave) da página inicial e também dos posts, além dos títulos de cada página. </p>
<p><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" title="Plug-in All in One SEO Pack">Baixe o plug-in</a>, instale-o e ative.</p>
<h3>Mecanismos de busca odeiam SPAM</h3>
<p>Os mecanismos de busca odeiam SPAM, ou seja, odeiam conteúdo ruim e/ou desnecessário. Existe um plug-in que modera spam no seu site, chama-se Akismet. Geralmente ele já é incluído quando você instala o WordPress, mas caso não encontre depois que instalar, <a href="http://wordpress.org/extend/plugins/akismet/" title="Akismet plug-in">baixe-o</a> e ative-o.</p>
<p>Para usar do plug-in é necessário resgatar um código gerado pelo <a href="http://akismet.com/" title="Site Akismet">site</a> deles.</p>
<h3>Use semântica no seu código</h3>
<p>Do que adianta ter todos esses aperfeiçoamentos no seu site e seu site não estiver com um código semântico? Por isso trabalhe com um código de qualidade para que não haja dificuldade para seu código ser lido pelos mecanismos de busca.</p>
<p>Use alt e title para as imagens, não esqueçam, pois as imagens só podem ser lidas desta maneira. Trabalhe bem com as tags de título &lt;h1&gt;, &lt;h2&gt;, &lt;h3&gt;, &lt;h4&gt;, &lt;h5&gt;, &lt;h6&gt;, e estabeleça uma hierarquia entre elas. </p>
<h3>Utilize sempre um plug-in de cache</h3>
<p>A partir da demanda do seu site e ele for crescendo em questão de conteúdo, é sempre bom ter um plug-in de cache para diminuir o carregamento da sua página, sendo assim os mecanismos de busca não terão dificuldades para carregar seu site.</p>
<p>Indico <a href="http://wordpress.org/extend/plugins/wp-super-cache/" title="WP Super Cache">WP Super Cache</a>, <a href="http://wordpress.org/extend/plugins/wp-super-cache/" title="W3 Total Cache">W3 Total Cache</a>, <a href="http://wordpress.org/extend/plugins/batcache/" title="Batcache">Batcache</a> ou <a href="http://wordpress.org/extend/plugins/hyper-cache/" title="Hyper Cache">Hyper Cache.</a></p>
<p>Tenho certeza que com um deles, seu site estará em boas mãos em relação ao cache.</p>
<h3>Sitemaps (mapa do site)</h3>
<p>Para os mecanismos de busca, um sitemap ajuda nas buscas de páginas, pois ele relaciona as URL existentes no seu site. Leia esse <a href="http://tableless.com.br/seo-sitemaps" title="Artigo SEO Sitemaps Tableless">artigo</a> e veja o porquê do uso de sitemaps.</p>
<p>O WordPress tem um plug-in que gera um sitemap já otimizado para mecanismos de busca. </p>
<p>Use o <a href="http://wordpress.org/extend/plugins/google-sitemap-generator/" title="Plug-in Google SiteMap Generator">Google SiteMap Generator</a> e não tenha possíveis problemas para este assunto.</p>
<h3>Crie um bom Meta Robôs</h3>
<p>É importante você ter um robots.txt na raiz do seu site, que é um arquivo funciona como filtro para os Crawlers e os robôs dos mecanismos de busca, permitindo ou não acesso a páginas do seu site.</p>
<p>Crie um arquivo em txt, chamado robots.txt com o seguinte código:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">User-agent: *<br />
Disallow: /cgi-bin<br />
Disallow: /wp-admin<br />
Disallow: /wp-includes<br />
Disallow: /wp-content/plugins<br />
Disallow: /wp-content/cache<br />
Disallow: /wp-content/themes<br />
Disallow: /trackback<br />
Disallow: /feed<br />
Disallow: /comments<br />
Disallow: /category/*/*<br />
Disallow: */trackback<br />
Disallow: */feed<br />
Disallow: */comments<br />
Disallow: /*?*<br />
Disallow: /*?<br />
Allow: /wp-content/uploads<br />
<br />
# Google Image<br />
User-agent: Googlebot-Image<br />
Disallow:<br />
Allow: /*<br />
<br />
# Google AdSense<br />
User-agent: Mediapartners-Google*<br />
Disallow:<br />
Allow: /*<br />
<br />
# digg mirror<br />
User-agent: duggmirror<br />
Disallow: /<br />
<br />
Sitemap: http://www.seusite.com.br/sitemap.xml</div></td></tr></tbody></table></div>
<p>Envie para o servidor e ponha na raiz do seu site.</p>
<p>E no header.php do seu tema, adicione o código:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_single<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> is_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> is_category<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> is_home<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;meta name=&quot;robots&quot; content=&quot;all,noodp&quot; /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_archive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;meta name=&quot;robots&quot; content=&quot;noarchive,noodp&quot; /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_search<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> is_404<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;meta name=&quot;robots&quot; content=&quot;noindex,noarchive&quot; /&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>Faça um bom conteúdo</h3>
<p>Não adianta ter um site todo otimizado para os mecanismos e eles não terem o que buscar de conteúdo no seu site. Fazer um bom conteúdo é essencial para qualquer indexação de artigo, página, textos ect. </p>
<p>Também não se esqueça de trabalhar com as redes sociais, pois maior quantidade de links gerados para o seu site, maior relevância ele terá.</p>
<p>Seja sempre objetivo e claro na suas publicações, tenho certeza que terá um bom resultado. Vale ressaltar que o Google está punindo quem copia conteúdo, muito cuidado.</p>
<p>Caso tenha futuras dúvidas, o WordPress oferece no seu codex um <a href="http://codex.wordpress.org/Search_Engine_Optimization_for_WordPress" title="Guia para otimização de SEO WordPress">guia para otimização de SEO</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/nem-so-de-client-side-vive-um-site/" title="Nem só de client-side vive um site">Nem só de client-side vive um site</a></li><li><a href="http://tableless.com.br/melhorando-carregamento-wordpress/" title="Melhorando carregamento do WordPress">Melhorando carregamento do WordPress</a></li><li><a href="http://tableless.com.br/posts-formats-do-wordpress/" title="Posts Formats do WordPress">Posts Formats do WordPress</a></li><li><a href="http://tableless.com.br/tags-condicionais-do-wordpress/" title="Tags Condicionais do WordPress">Tags Condicionais do WordPress</a></li><li><a href="http://tableless.com.br/custom-post-types-wordpress/" title="Custom Post Types no WordPress">Custom Post Types no WordPress</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/otimizando-site-wordpress-seo/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>

