Como funciona a hierarquia de tema Wordpress?
Hierarquia de modelos Wordpress
O diagrama acima pode até parecer assustador, mas não é. Funciona assim:
OBS: Atualizado para a versão 6.0 em diante (10/06/2022)
Na primeira coluna a esquerda, temos basicamente os tipos de conteúdo de um tema Wordpress que são:
- Arquivo - is_archive()
- Página simples- is_singular()
- Página principal - is_frontpage()
- is_home()
- is_comment_popup()
- Página de busca - is_search()
- Página de erro - is_404()
Para entender o esquema de cores deste diagrama leve em conta esta parte da tabela:
Agora vamos a explicação...
Como funciona?
Apenas para exemplificar o básico, vamos mencionar as situações principais que podem ser percebidas neste diagrama:
- Página principal - quem já é usuário Wordpress sabe que existe uma configuração de como será a leitura do site, se será uma exibição de posts recentes ou uma página estática. Bom, na sua hierarquia será:
- Se ele estiver configurado para exibir uma página estática. irá buscar por front-page.php. Se ele não encontrar este arquivo, ou se o seu tema não o tiver, ele irá exibir o arquivo index.php da pasta raiz.
- Se ele estiver configurado para exibir os últimos posts, ele irá direto para o arquivo index.php.
- Página de pesquisa - buscará pelo arquivo search.php. Se não o encontrar, buscará por index.php.
- Página de erro - buscará pelo arquivo 404.php. Se não o encontrar, buscará por index.php.
- Arquivo - se for um arquivo, ele verificará que tipo de arquivo está sendo consultado (Ex: is_date(), is_category(), is_tag(), is_author(), is_tax(), is_post_type_archive(), etc...) E para cada caso, o tema pode fornecer uma exibição diferente por tipo de conteúdo, bastando neste caso que tenha uma arquivo para cada tipo.
- is_date() - date.php.
- is_category - category.php
- is_tag() - tag.php
- is_author() - author.php
- is_tax() (Taxonomia personalizada) - taxonomy.php
- is_post_type_archive() - archive-${tipo_de_post}.php (Ex. se eu tenho um Custom Post Type do tipo produto, o nome do arquivo será archive-produto.php)
- Caso o seu tema não tenha um modelo de arquivo para cada tipo de conteúdo, a exibição de arquivo irá buscar diretamente o archive.php. Caso não haja também, ele irá exibir o index.php.
- Agora, imagine o seguinte cenário:
- O seu tema tem vários tipo de categoria, mas o arquivo de uma das categorias deve ser exibido de forma diferente das demais. Por exemplo: o arquivo das categorias Notícias e Novidades terão um layout e o arquivo da categoria Artigos terá outro formato. Você pode criar o modelo category-${slug}.php que neste caso provavelmente seria category-artigos.php.
Seguindo estes exemplos acima, é possível entender toda a hierarquia de modelos nos temas Wordpress.
Documentação oficial: Hierarquia de Arquivos de Tema WordPress
No Comments