Tableless - Desenvolvimento inteligente com Padrões Web

08/04/2009
Na Prática

Hierarquia de arquivos do WordPress

O Wordpress utiliza uma hierarquia de arquivos para a criação de themes. Para criar bons sites e blogs baseados em Wordpress, é importante que você entenda essa hierarquia.

Por


Para criar um bom theme para WordPress, você precisa conhecer bem a estrutura de arquivos que são utilizados no construir estes themes. São usados vários arquivos que setorizam as várias funcionalidades do blog ou site. Veja abaixo arquivos que são normalmente utilizados:

  • Página de Erro 404 – 404.php
  • Histórico e Arquivo – archive.php
  • Index de Histórico e Arquivo – archives.php
  • Página de uma Categoria – category.php
  • Comentários – comments.php
  • Rodapé – footer.php
  • Cabeçalho – header.php
  • Links – links.php
  • Home e Principal – index.php
  • Páginas – page.php
  • Post – single.php
  • Formulário de busca – searchform.php
  • Resultados de busca – search.php
  • Sidebar – sidebar.php
  • Stylesheet – style.css

O WordPress usa as Query String de cada link do seu site para saber qual arquivo ele deve mostrar na página. Ele decide qual tipo de página será requisitada – uma página de busca, categoria, a home etc.
Ele procura esses arquivo dentro do diretório do seu template. Caso o WP não encontre o arquivo requisitado, ele escolhe o template padrão do index.php para ser usado. Há uma hierarquia de arquivos de template que o WordPress irá requisitar caso ele não encontre o correto.

Por exemplo: imagine que seu visitante clique em um link de seu site que o leve para dentro de uma categoria. O WordPress irá procurar o arquivo referente a categoria personalizada. Suponha que o ID da categoria seja 40, ele procuraria o arquivo category-40.php, que é o arquivo que personaliza a página desta categoria. Caso ele não o encontre, o WordPress procura pelo arquivo genérico que gera as páginas de categorias, no caso o category.php. Contudo, se ele não encontrá-lo também, ele procurará o archive.php que é o documento que gera as páginas de históricos e arquivos. Caso ele também não o encontre, ele irá utilizar o arquivo principal index.php
Assim, seu sistema/blog/site não fica com erros por não encontrar um determinado documento.

Abaixo segue a hierarquia de alguns arquivos. Você pode ver muito mais detalhes aqui.

Home Page
  1. home.php
  2. index.php
Visualizando o post
  1. single.php
  2. index.php
Páginas
  1. nomedapagina.php – Seria um arquivo para uma página especifica personalizada
  2. page.php
  3. index.php
Category display
  1. category-id.php – Categoria específica, onde o ID é o número de identificação da categoria
  2. category.php
  3. archive.php
  4. index.php
Histórico
  1. date.php
  2. archive.php
  3. index.php
Tag
  1. tagslug.php – Arquivo personalizado para uma tag específica
  2. tag.php
  3. archive.php
  4. index.php
404
  1. 404.php
  2. index.phpc

Na documentação do WordPress há um diagrama muito esclarecedor:
template_hierarchy

Muitos desenvolvedores por aí, aconselham que você comece seu theme a partir de um já pronto. Eu já vou além e sugiro que você comece fazendo os arquivos à medida em que for precisando dos arquivos. Assim você evita grandes quantidade de documentos inúteis na pasta do seu template. Isso é muito importante caso você esteja fazendo um site, por exemplo. Quanto mais organizado e menor a quantidade de arquivos, melhor. Mesmo assim, não atole todas as funções no index.php. Divida cuidadosamente as seções do site para não haver confusão em apenas um arquivo.

É possível saber quais os arquivos você precisará utilizar em seu template logo quando recebemos os documentos em HTML. Você pode utilizá-los como base para a criação dos arquivos dos templates. É a melhor maneira de começar criando um theme do zero.

No site do WordPress há outras muitas informações importantes sobre a Hierearquia dos Arquivos.

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • Helder

    Muito bom artigo. Muito esclarecedor mesmo. Em relação a criação to tema, também prefiro começar do zero. Assim tenho controle de tudo que vou realmente usar.

  • http://fernanda.jatala.com.br/ Fernanda Prevedello

    Tbm sou a favor de se criar um theme de acordo com a necessidade, dessa forma dá para usar apenas o que for necessário, além de aprender a desenvolver melhor na ferramenta.

  • http://edysegura.com.br Edy Segura

    Excelente artigo Diego! Estava precisando desses conceitos! Obrigado!

  • http://www.willianduarte.com Willian

    Bom artigo, uma dica para seguir na criação de themes para o wordpress é baixar um ‘blank themes’ para o wordpress. Eu baixei faz um tempo, não lembro aonde encontrei, mas o Sr. Google resolve.

  • http://blog.lppjunior.com Luiz Paulo

    Boa!
    Nem sabia de todas as hierarquias :|

    []‘s

  • http://www.andreamaral.net André Amaral

    Muito interessante!

  • http://eumarcospaiva.wordpress.com marcos_paiva

    Matou a pau!!
    Nada como aportuguesar as documentação e ainda dar dicas!!

    :D

  • http://www.thalisvalle.com Thalis Valle

    Ah, se não fosse o WordPress. Muita gente passando fome.

  • http://floripasom.com/video/ Acelio F

    Muito bom.

    Já tinha “constatado” em testes práticos, este fato da “Query String”, mas não tinha a compreensão da hierarquia e a possibilidade de interferir nela.

    Esta da category-id foi empolgante pra mim.

    Estava em dúvida sobre aplicar o wordpress em sites “não blog”, mas agora…

    E vivas ao HTML5!

    Alguém sabe como criar um “rascunho” de postagem que fique armazenado no WordPress?
    Como um “modelo”. Para usuários não familiarizados com HTML poderem publicar o conteúdo seguindo um padrão mais elaborado e diferente para cada sessão.
    Imagino ter que fazer modelos em separado, para copiar e colar. Senão eles podem “destruir” um layout mais elaborado, postando pela interface original.

  • http://hajaluz.net Luiz Aquino

    Você tem razão quando diz para começar o theme do zero, talvez um framework até ajude.

    O problema em fazer um tema em cima de outro é que você pode querer mudar uma cor de link especifico, por exemplo, mas as marcações para links podem ter uma nomenclatura no css muito própria de quem fez.

    Eu já tive muitos problemas com isso… mas agora com um framework as coisas ficam mais fáceis..

    Abraços e sucesso!!!

  • http://www.fernandosergio.com.br Fernando Sergio Azevedo Neves Filho

    Ótimo post, eu não tinha lido sobre isso ainda :P .

  • http://criacao-de-sites@workaholics.com.br Criação de sites Workaholics

    Cara muito bom o post, podia rolar um de Joomla!

    Abraço

  • http://webcomfarinha.com Matheus

    Ótimo Post!!

  • http://designcombolachas.blogspot.com/ Thiago Cavalcanti

    Impressionante o quanto tem de tutorial por aí que omite completamente a existência desta hierarquia, além de outros fatores básicos.

    Fica o pedido para o Diego fazer uma lista das outras coisas que ele considera importantes para quem faz temas para WordPress.

  • http://www.reginaldosousa.com.br Reginaldo Sousa

    Muito legal.
    Até sabia de algumas partes dessa hierarquia, mas com esse tutorial ficou bem mais claro.

  • http://www.alexnaweb.com Alexsandro

    O artigo é muito bom, e estava precisando mesmo dele, pois estou tentando discernir como estrutura um wordpress deste para minha realidade, mas estou encontrando dificuldade pelo fato de ser muita coisa quando se baixa o wordpress. No entanto este seu artigo foi de suma importancia pra mim para que eu entenda como estruturar meus sites baseados em wordpress.

    Um abraço e sucesso!

    Alex

  • http://www.clareamentodental-dentes.com.br Clareamento Dental

    Excelente post! A tempo buscava novidades

    Obrigada!

    Gaby

  • Narley Fabricio

    Muito esclarecedor….!!!

  • http://marcelowd.wordpress.com/ Marcelo Torres

    Grande artigo, faz tempo que estava atrás disso

  • Pingback: rmsramos » Um layout para cada categoria no WordPress.

  • http://www.rchost.com.br Danilo

    Ola Gostei do Tuto, tenho uma duvida , por que toda vez que eu copio algum conteudo d e um site e copio dentro de uma pagina criada no wordpress, ele so aparece metade e nao conteudo inteiro ?

  • http://rafaelparanaiba.com Rafael

    Ótimo post.

  • http://board.muse.mu/member.php?u=127215 assophism

    I studied all his issue, but don’t know what to say on it – just check out it later!

    cheers,
    ______________
    assophism
    purchase soma online
    http://board.muse.mu/member.php?u=127215

  • http://www.tudocondominio.com.br segurança na rede

    Otima sacada.
    Mas gostaria de um link para obter mais informações, do tipo começar do zero sabe.

  • http://www.hfernandes.com.br Hodney

    Legal, na verdade uso esse artigo até como referiencia na hora de criar um theme novo.

    parabéns.

  • http://www.extremaonline.com Extrema

    Excelentes explicações.
    Estou começando à fazer um site em WordPress e vou vendo as dicas aqui apresentadas.
    Com estas dicas acho que irei conseguir fazer de acôrdo.
    Valeu!

  • http://www.olelho.com Rafael Coelho

    Boa tarde Diego!

    Gostei do post, muito interessante!
    Você indica algum livro que trate do assunto (criação de tema) do início ao fim? Agradeço pela atenção!

  • Pingback: Hierarquia de arquivos do WordPress | Marcelo Wanderley

  • http://www.facebook.com/profile.php?id=100002714790210 Victor Lima

    Cara curtir esse post. To quase fazendo as aulas particulares por causa desse post… 

  • Pingback: Iniciando desenvolvimento de sites com WordPress – Parte I | Tableless | Tableless