Início » Desenvolvimento WordPress » Páginas de listagem de posts na hierarquia de templates do WordPress | Dicas essenciais
Desenvolvimento WordPress

Páginas de listagem de posts na hierarquia de templates do WordPress | Dicas essenciais

As páginas de listagem de posts são responsáveis por exibir todo o conteúdo cadastrado no WordPress filtrando por um determinado tipo de conteúdo.
Escrito Por Leandro Vieira em outubro de 2015 /8 min de leitura
Conteúdo escrito por humano

A Hierarquia de templates é, sem dúvida, um dos assuntos mais importantes do WordPress. Não há como desenvolver um tema para o WordPress sem conhecer suas templates e qual hierarquia elas seguem.

Já descrevemos em uma postagem anterior como funciona a Hierarquia de Templates do WordPress, mostrando como é determinado qual arquivo deve ser incluído e outras particularidades do funcionamento “underground” da plataforma.

Páginas de Listagem de Posts

Também conhecidas como páginas de arquivos (em inglês: archive pages), as páginas de listagem de posts são responsáveis por exibir todo o conteúdo cadastrado no WordPress filtrando por um determinado tipo de conteúdo, categoria, tag, autor, entre outros.

Páginas de listagem de posts

Hierarquia de arquivos do WordPress com foco nas páginas de listagem de posts

Quando o WordPress identifica a URL como sendo uma página de listagem de posts, é verificado qual o tipo da listagem (autor, categoria, tag, etc), e acessado o banco de dados para recuperar todos os posts cadastrados filtrando pelo tipo específico. Caso o tipo identificado na URL não esteja presente no Banco de Dados, ou o termo procurado não tenha sido cadastrado, o WordPress exibirá a página de erro 404 ao contrário de uma listagem de posts.

A template archive.php

A template archive.php funciona como uma garantia de que você terá uma página de listagem de posts no seu tema.

Imaginemos um caso hipotético, onde temos uma home toda customizada, sem uma listagem padrão de posts. No tema para esse caso também não foi criada nenhuma das templates de listagem de posts, que falaremos a seguir.

Então, para garantir que o tema tenha uma página que listará os posts, independente do tipo do conteúdo, podemos criar a archive.php, e assim teremos todas as páginas de listagem com a mesma estrutura.

Listagem de posts por autor

Peguemos como exemplo para a listagem de Autor a url https://blog.apiki.com/author/arilton/. O WordPress identifica essa URL como sendo a página de listagem de todos os posts de um autor com o slug arilton. Então, seguindo a lógica da hierarquia de templates é possível termos no tema até 5 arquivos que exibirão os posts desse autor.

  • author-$nicename.php
  • author-$id.php
  • author.php
  • archive.php
  • index.php

Nessa ordem.

Caso tenhamos no tema um arquivo com o nome author-arilton.php, esse arquivo exibirá somente a listagem de posts do autor com o slug arilton. Os outros autores usarão alguma outra template.

Imaginemos que o autor Arilton, tenha no sistema o ID 10. Então, caso não exista a template author-arilton.php, o WordPress irá procurar pelo arquivo author-10.php para listar somente posts do usuário.

A template author.php irá ser carregada se nenhuma template mais específica existir no tema. Ela também é a mais comum para a exibição da listagem de posts por autor. Normalmente, todos os autores tem seus posts listados por ela.

O archive.php, como já dito mais acima, somente irá ser utilizada se não existir o author.php ou uma de suas variações, e somente chegará na index.php caso nenhuma template de autor nem a archive.php tenham sido criadas.

Listagem de posts por categoria

Além da archive.php e da index.php que já citamos, esse tipo de listagem pode trabalhar até com mais 3 arquivos.

Para que todas as categorias do site tenham a mesma listagem criamos no tema o arquivo category.php. Mas se desejamos que alguma categoria específica tenha uma listagem diferente, temos dois modos de fazê-lo.

Como exemplo vamos utilizar a url https://blog.apiki.com/category/wordpressseguro/. Essa URL deve exibir uma página que liste todos os posts de uma categoria com o slug wordpressseguro. Para trabalhar com o slug da categoria devemos utilizar a template category-wordpressseguro.php. Supondo que o ID dessa categoria seja o 15, ainda podemos ter o arquivo category-15.php.

Assim, podemos ter um layout para a listagem de posts por categoria e outro layout específico somente para a categoria WordPressSeguro.

Listagem de post types

Chamamos de Post Types os tipos de posts personalizados que podemos criar no projeto. Os tipos de posts personalizados também podem ter templates específicas para a listagem de todos os seus posts.

Por padrão o arquivo archive.php irá fazer esse papel, e na sua ausência o index.php pode listar esses posts. Mas o ideal é que tenhamos uma listagem específica para cada tipo de conteúdo diferente dentro do site. Para esses casos entra em cena a template archive-$posttype.php.

Tomando como exemplo um site em que temos o tipo de post personalizado Produto, e outro tipo Review, então podemos ter o arquivo archive-produto.php para o CPT de Produto, e o arquivo archive-review.php para o CPT de Review.

Listagem de posts por data

Quando queremos ver todos os posts de um determinado período, como por exemplo na URL https://blog.apiki.com/2015/10/, que exibe todos os posts do mês de Outubro do ano de 2015, além da index.php e da archive.php que são templates padrão para o caso, também podemos ter a template date.php.

Nesse caso de listagem por data não temos como ser mais específicos, como por exemplo, ter um layout só para o mês de Outubro, ou um só para o ano de 2015. Todas as listagens de posts filtrando por uma data irão utilizar o date.php, depois archive.php, depois index.php.

Listagem de posts por tags

A listagem de posts por tag segue a mesma lógica da listagem de posts por categoria. Além de index.php e archive.php, temos a possibilidade de criar o arquivo tag.php, tag-$id.php e tag-$slug.php.

Utilizando o exemplo da URL https://blog.apiki.com/tag/manager/, onde exibimos todos os posts marcados com a tag manager, e assumindo que essa tag tem o ID 5, podemos criar no tema o arquivo tag-5.php ou tag-manager.php para customizar somente a listagem de posts por essa tag.

Listagem de posts por taxonomia

Taxonomias são formas para agrupar os posts por alguma característica. No WordPress, por exemplo, Categoria e Tag são taxonomias padrões da plataforma. Também podemos criar nossas próprias taxonomias para o os projetos, e para listar os posts marcados com um determinado termo de uma taxonomia teremos templates específicas dentro da hierarquia de arquivos.

Além de index.php e archive.php, padrões em todos os casos, também podemos criar o arquivo taxonomy.php para exibir todas as listagens de posts por um termo de uma taxonomia.

Caso precisemos ser mais específicos na listagem, podemos customizar sua exibição tanto por uma única taxonomia quanto por um termo. No exemplo de Post Type criamos um com o nome de Produto. Vamos criar agora duas taxonomias para esse tipo de conteúdo Produto. Digamos que Produto tenha cor e tenha tamanho.

Criando o arquivo taxonomy-cor.php especificamos que sempre que acessar a url para a listagem de posts por um termo qualquer da taxonomia de cor essa template será utilizada. Enquanto a taxonomia de tamanho continua sendo exibida pela template taxonomy.php, caso essa exista.

Sendo ainda mais específico, podemos customizar a exibição de somente um termo dentro da taxonomia de uma taxonomia, por exemplo, para customizar a exibição do termo azul da taxonomia de cor devemos criar o arquivo taxonomy-cor-azul.php dentro da pasta do tema.

Dicas de ouro

Dê uma mais uma olhadinha na hierarquia de arquivos do WordPress focada nas páginas de listagem de posts:

Páginas de listagem de posts

Falamos de todas as templates possíveis nesse caso. Mas é importante todos terem ciência de “ler” a imagem sempre da esquerda para a direita, para saber caso a caso, tema a tema, qual arquivo está sendo incluído para cada url. Se o WordPress não encontra o arquivo mais à esquerda na imagem, ele segue sua busca para a direita até chegar na index.php

Outra coisa importante a ser falada é para evitarem sempre o uso das templates que trabalham com o ID de alguma coisa, category-$id.php, tag-$id.php, author-$id.php. Essas templates são chamariz de problemas para seu código, pois o ID é um número único para cada tipo gerado automaticamente pelo WordPress. É improvável que você sempre controle que o ID da categoria WordPressSeguro será o mesmo no seu ambiente de desenvolvimento e de produção. Nesse caso, criando o arquivo category-15.php você pode chegar em produção e descobrir que o ID da categoria WordPressSeguro é 21 e não 15, como era no seu ambiente de desenvolvimento.

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.
Qual nota você da para este artigo?
Ruim

O que você achou disso?

Clique nas estrelas

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Excelente
Artigos Relacionados
Destaque plugins WordPress

O que são plugins WordPress?

  1. Caco Portela
    Valeu pela intenção mas não ajudou em nada. Não falas, em momento algum, onde a pasta ou arquivo "ARCHIVE" está. Enfim... Obrigado, mesmo assim.
    1. Leandro Vieira Pinho
      Ei, Caco. Essa pasta não existe. A hierarquia do WordPress trata da interpretação da URL em exibição. No post é usado exemplos de URLs amigáveis.
  2. Gustavo Siqueira
    Esse post me tirou uma dúvida gigantesca, muito obrigado!
  3. Olá, me tira uma duvida. Criei um site pelo wordpress e criei uma pagina para ficar fixa como pagina principal, porem eu gostaria de colocar um link nessa pagina entitulada de "blog". Acontece que eu não sei qual é o link que lista todos os posts. Já tentei exemplo.com/blog e diversos outros como .../posts, etc. Não quero listar apenas uma categoria ou algum autor, quero listar todos os posts

Construa seu site WordPress sob medida com os maiores especialistas em WordPress da America Latina
Conheça a Apiki

Faça um comentário
Cadastre-se rápido

Fazer Login