Guia Completo – Hierarquia de Templates do WordPress
Uma das melhores características do WordPress é sua poderosa capacidade de modelagem. Ao manipular alguns arquivos, você pode criar temas complexos com diferentes layouts e opções visuais para diferentes tipos de conteúdo. Isto é possível graças ao modelo complexo de hierarquia do WordPress, que oferece um imenso controle para o desenvolvedor sobre a apresentação de conteúdo e layouts.
Neste artigo, vamos aprender sobre a hierarquia de template WordPress, como ele funciona, e como isso afeta o seu blog.
O que é hierarquia de template no WordPress?
Para entender hierarquias de templates, é preciso primeiro entender como WordPress renderiza páginas.
Vamos considerar que você tem um blog WordPress, MeuBlog.com.br. Você deseja acessar uma determinada página em seu blog com o URL:
http://meublog.com.br/category/noticias/
Quando você digita essa URL no seu navegador, o WordPress irá entrar em ação para determinar que tipo de página está sendo solicitada. WordPress tem páginas diferentes para diferentes tipos de conteúdo – uma página de arquivo, uma página inicial, uma página de pesquisa, etc. Uma vez que o WordPress determina o tipo de página, ele vai tentar encontrar um modelo para essa página em particular.
Neste exemplo, WordPress sabe que você está solicitando uma página de categoria (perceba que há um /category/ na URL). Mas você não está solicitando apenas qualquer página da categoria – você está solicitando uma categoria específica, noticias. Assim, o WordPress irá tentar encontrar um modelo que corresponde a essa categoria específica.
Vamos por etapas:
- WordPress procurará primeiro por um modelo para essa categoria particular. Cada categoria tem uma identificação única. No exemplo acima, se o ID da categoria é 5, ele vai tentar encontrar um arquivo
category-5.php
como template. - Se o WordPress não puder encontrar o arquivo da
category-5.php
, ele subirá um nível e usará o templatecategory.php
para processar a página. - Se o template
category.php
não estiver disponível, o WordPress usará o template archive.php (uma vez que uma categoria não é nada mais que um tipo de archive). - Se
archive.php
não puder ser encontrado, ele vai cair de volta no templateindex.php
por padrão.
Assim, a progressão é de template específico para modelos genéricos. Para o exemplo acima, isto pode ser representado como se segue:
category-5.php => category.php => archive.php => index.php
Existem diferentes hierarquias para diferentes tipos de página. Por exemplo, se você tem a sua página em MeuBlog.com.br, o WordPress terá o seguinte caminho para determinar qual o template a ser usado:
WordPress vai procurar primeiro o template de front-page.php
que servirá como primeira página.
Se o WordPress não conseguir encontrar front-page.php
, ele procurar pelo próximo nível de template – home.php
.
Se ele não puder encontrar home.php
, finalmente recorrerá ao uso da index.php
por padrão.
Não importa o tipo de conteúdo, o WordPress sempre usará index.php
se não puder encontrar qualquer outro template. Isto significa que você poderia ter um site totalmente funcional (embora com má usabilidade) com apenas o arquivo de template index.php
.
Hierarquia de Template WordPress por tipo de conteúdo
WordPress pode detectar automaticamente o tipo de conteúdo que precisa ser mostrado e procurar o tipo de template apropriado. Abaixo, vamos dar uma olhada nas hierarquias para alguns tipos de conteúdo selecionados:
Página de Categorias
Como mencionado acima, uma categoria é um tipo especial de arquivo. WordPress utiliza a seguinte hierarquia ao exibir páginas de categoria:
- Se você tem um slug específico de categoria ou nome (digamos,
noticias.php
), WordPress fará uso deste arquivo em primeiro lugar. Você pode editar os slugs de categoria na página da categoria em seu painel WP. - Cada categoria também tem um ID da categoria, independentemente de você ter dado um slug ou não. WordPress cria a ID da categoria automaticamente. Se WP não conseguir encontrar um arquivo com o slug da categoria, ele usará o ID da categoria, algo como
categoria-32.php
. - Se o template de ID da categoria não existir, WordPress usará o template
category.php
por padrão. - Se ele não conseguir encontrar um template de categorias, ele usará o template básico
archive.php
. - Se ele não pode encontrar até mesmo o template
archive.php
, ele usará para o templateindex.php
.
O caminho é o seguinte:
category-slug.php => category-ID.php => category.php => archive.php => index.php
Páginas de Autor
Para páginas de autor, o WordPress tem o seguinte caminho:
- O primeiro template que o WordPress procura é o nome do autor, como
author-julius.php
- Se não conseguir encontrar o nome do autor, ele vai procurar pelo modelo autor ID (como
author-2.php
). Como em categorias, o WordPress gera um ID automaticamente. - Se o template
author-id.php
não existir, ele usará template genéricoauthor.php
. - Se até mesmo o template
author.php
estiver faltando, ele usará o template básicoarchive.php
. Lembre-se que a página de autor é também um tipo de arquivo. - Finalmente, o WordPress recorrerá ao
index.php
se não puder encontrar o templatearchive.php
.
Isto pode ser representado como se segue:
autor-name.php => autor-id.php => author.php => archive.php => index.php
Páginas individuais e Posts
Até agora, nós olhamos o tipo de conteúdo archive. E sobre páginas simples e posts individuais?
Esta é a hierarquia de posts padrão:
- Para um post padrão, o WordPress irá primeiro tentar encontrar o
single-post.php
. - Se este estiver ausente, ele utilizará o template genérico
single.php
. - Se até mesmo
single.php
estiver faltando, ele usaráindex.php
single-post.php => single.php => index.php
Mas e se você tem um tipo de post personalizado? Neste caso, WordPress procurará primeiro por um modelo personalizado, single-postpersonalizado.php
, desta forma:
single-posttype.php => single.php => index.php
A hierarquia para páginas estáticas individuais, no entanto, é um pouco diferente:
- WordPress vai ver primeiro se você estiver usando um modelo personalizado para a página estática. Este será
custom.php
(veremos em breve um artigo sobre templates personalizados para páginas). - Se você estiver usando a forma de template padrão, ele buscará o arquivo de template
page-slug.php
. - Em seguida, ele procurar pelo template
page-id.php
. - O próximo template será
page.php
- Finalmente, ele vai usar
index.php
custom.php => page-slug.php => page-id.php => page.php => index.php
A documentação Oficial do WordPress tem um fluxograma da hierarquia de templates para diferentes tipos de conteúdo. Acesse a este fluxograma em alta definição aqui.