Organizando páginas com listagem automatica de páginas filhas
Tanto o Celso, quanto o Rafael, usam com frequência o recurso de criação de páginas para colocar textos fora da cronologia do blog e aproveitar para não exibí-las aos assinantes do feed. É um recurso bem interessante para adicionar conteúdo que não seria interessante aos leitores, mas que podem atrair vários visitantes. Porém existe um pequeno problema com esta técnica, quando fazemos isso e usamos os métodos tradicionais de navegação do Wordpress, acabamos com uma lista interminável de páginas na barra lateral do blog ou não podemos colocar nenhuma, o que traria grande prejuízo para o posicionamento destas páginas.
Uma sugestão que dei para ambos foi a utilização de uma página intermediária, que possuiria um link na barra lateral e esta página intermediária, exibiria uma lista de links para as páginas finais, da mesma maneira que é feito nos CMSs convencionais, quando acessamos alguma categoria ou tipo de conteúdo.
Essa opção resolve dois problemas:
- Tira a lista imensa de páginas da barra lateral.
- Mantém a página a poucos "cliques" de distância da home do blog
Ou seja, as páginas continuarão sendo bem indexadas, porém não atrapalharão a usabilidade do blog.
Como funciona:
A solução é dividida em algumas partes, como:
- Criar um template para a página que vai listar todas as outras páginas filhas;
- Criar a página utilizando o template acima.
- Colocar todas as páginas que devem seguir este padrão como filha da página que faz a listagem.
Criando o template da página:
O sistema de temas do Wordpress é um dos mais flexíveis que conheço, além dos arquivos tradicionais que podem ser criados, com nomes específicos para desempenhar cada função, ainda é possível criar templates de páginas, que podem ser usados para funções específicas que você possa precisar. Praticamente qualquer coisa que possa ser escrito em PHP pode ser usado como uma página no WP, usando os templates.
Dois exemplos que pode ser feito com os templates, que uso no BrPoint, são:
- Resultado do Adsense para pesquisa no próprio blog.
- Ferramenta para verificar o posicionamento no Google.
Para criar nosso template, precisamos copiar o arquivo page.php, por exemplo, com outro nome e adicionar alguns comentários no início do código para que o WP passe a considerar este arquivo como tal.
O código para que o Wordpress identifique o arquivo como um template é:
/*
Template Name: Childlist
*/
?>
Este código deve ser a primeira coisa no código da nova página. A partir deste momento já temos um template que podemos usar para criar novas páginas, mas ele ainda faz, exatamente, a mesma coisa que uma página normal, que acabamos de copiar. Precisamos, então, modificar o resto do código para que seja apresentado a lista de páginas que são filhas da página que está sendo exibida.
Para conseguir isso, precisamos acrescentar o código:
<?php
wp_list_pages("title_li=&child_of=".$post->ID);
?>
</ul>
Esse código pode ser colocado logo abaixo do:
Se quiser que a lista de páginas apareça abaixo do texto da página, se quiser que apareça no lugar, basta substituir o código original.
Criar a página usando o template:
Agora que criamos o template, basta criar uma página para usar este template, você pode colocar um texto introdutório, caso tenha mantido o código para exibir o conteúdo (o que recomendo) e depois, basta selecionar o template que acabamos de criar, Childlist, caso tenha seguido exatamente o código até aqui.

Uma vez selecionado o template, a página passa a ser apresentada com o código que foi escrito no mesmo, ou seja, exibindo a lista de páginas filhas.
Colocar as páginas como filhas:
Agora que já possuímos uma página que pode mostrar todas as demais, só precisamos alterar as páginas que devem ser exibidas para utilizar esta como página mão.
No meu WP, está traduzido como página principal, se o seu não estiver traduzido, estará como Parent Page, o campo que deve ser alterado para que isto seja definido.

Como podem ver na imagem acima, estou colocando a página Posição no Google, como filha da página Ferramentas, que utiliza um template como este.
Acessando as páginas acima, fica fácil perceber como funcionará. No cabeçalho, crio o link somente para as páginas raiz e quando alguém acessar a página em questão verá uma lista com todas as páginas filhas destas.
Para fazer a listagem somente das páginas de primeiro nível, basta usar o código:
wp_list_pages('sort_column=menu_order&depth=1&title_li=');
?>
Conclusões:
O Wordpress é considerado, e podemos comprovar várias vezes, uma das ferramentas mais flexíveis disponíveis, por isso muitos blogueiros recomendam-o em detrimento de outras ferramentas.
Agora, ficou fácil arrumar a salada de páginas extras e atrair seus paraquedistas, sem incomodar os leitores fiéis.
PS.: Estou aproveitando para testar o Google Docs como ferramenta para escrever artigos para o Wordpress, espero que tudo funcione bem. Funcionando, escrevo o passo-a-passo.
Compare Preços de: Paraquedas, CMS, Páginas, PHP, Wordpress
[tags]Wordpress,CMS,PHP,Hacking,Template,Páginas[/tags]
Update: A utilização do Google Docs não deu muito certo, tive que rescrever quase todo o artigo.
Artigos relacionados
- Não tenha pressa, com o tempo a velocidade de indexação do Google melhora.
- Remova suas páginas do Google
- Google Reader melhorou e muito!
- Como aparecer na pesquisa Google por ‘páginas do Brasil’
- Ferramentas para Webmasters do Live Search













Cadê o título? O_o
EU SABIA!
Eu tinha 88% de certeza de que eles usavam essas técnicas!
Muito bom artigo
[...] Organizando páginas com listagem automática de páginas filhas [...]
Gostei muito Professor, estava procurando um plugin que fizesse algo parecido para evitar postar hypes na minha página principal. Não achei o plugin mas o BrPoint veio com a solução...
Agora me diz, tem como fazer para além de aparecer o titulo, uma breve descrição como nas categorias usando o the_excert???
Tentei adaptar mas não consegui, também não tenho muito conhecimento de PHP.
Gostei da dica! Uso umas páginas com conteúdo em php que ficam na raiz do blog... nunca tinha pensado em transformá-las em templates com conteúdo em php! Mais um dever de casa para o fim-de-semana.
Opa, legal! A cada dia me surpreendo mais com o WordPress. Não fazia a menor idéia de que fosse possível, mas já havia visto em alguns lugares. Ótima dica!
David, o Google Docs não enviou o título.
Rafa, que técnica?
Rodrigo, obrigado.
Leo, possível deve ser, mas não me ocorre como, de estalo, vou pesquisar. Acredito que jogando a lista de páginas em um loop, possa fazer isso.
Lu, vale a pena, pois fica tudo integrado, o problema é quando mudamos de tema, todos os templates têm que ser reescrito.
Julio, obrigado.
Abraços
Bruno, e como eu faço para exibir "páginas netas"? Suponha que a página mãe tenha três filhas; nesta página mãe eu gostaria de fazer a listagem de todas as netas, separadas em divs para cada "página filha" (que funcionaria como categorias, na verdade) e estes só serem exibidos se houver páginas (ou exibe-se um erro).
Será que compliquei? hehe
Abs
Diego
Diego, terei que pesquisar, mas acho que o próprio wp_list_pages, com o atributo de hierarquia verdadeiro, já deve fazer isso.
Abraço
[...] usada pelos probloggers para engordar os bolsos na primeira frase do segundo parágrafo deste post. Ele também me confirmou que 90% do seu lucro é proveniente dessa prática um tanto quanto [...]
Acho que vou providenciar estas mudanças o mais rápido possível, fica bem mais eficaz.
Valeu pela dica, Brunão! =D
Celso, obrigado.
Abraço
Professor, seguinte...
Segui essa dica para criar uma página e evitar publicar hypes para os leitores do meu blog. O problema é que as páginas demoram muito para que o google possa indexar enquanto os posts além de serem indexados no mesmo dia (via home) demoram cerca de 3 dias no meu caso. Tem algo que eu possa fazer para que as páginas possam ser indexadas mais rápida?
Leo, deveria demorar o mesmo tempo que os artigos, só a home que é um pouco mais rápida, mas continue trabalhando que logo logo, mesmo as páginas começarão a indexar bem mais rápido.
Abraço