
🚀 Como criar uma página de arquivo para tipos de publicação personalizados no WordPress
Quando um site ultrapassa a fase de «blogue mais algumas páginas», os artigos e categorias padrão deixam de ser suficientes. Portefólios, equipas, testemunhos, casos de estudo, anúncios de emprego: tudo isto precisa de viver na sua própria estrutura, em vez de ser enfiado no fluxo geral de artigos com remendos de categorias.
O WordPress resolve este problema através dos tipos de conteúdo personalizados. Mas criar um CPT não basta; também precisa de uma página onde todas as entradas desse tipo sejam reunidas: uma página de arquivo. Sem ela, os visitantes simplesmente não verão os itens do seu portefólio ou os membros da equipa exibidos como um bloco unificado.
Plugins de grelha como o Essential Grid tratam do lado visual, mas adicionam CSS e JS extra. Em projetos pequenos, isto passa despercebido, mas num site com dezenas de milhares de visitantes, cada kilobyte conta. O mecanismo de arquivo nativo do WordPress oferece a mesma funcionalidade sem sobrecarga no frontend e demora apenas 10 minutos a configurar.
💡 Visão geral rápida:
- Crie um tipo de conteúdo personalizado via CPT UI e ative o suporte de arquivo nas definições de imediato
- Escreva um template personalizado para um controlo preciso do layout, se necessário
- Configure os metadados de SEO via Yoast SEO: título, descrição e og:image para a página de arquivo
- Desative a barra lateral e adicione marcação Open Graph, se necessário
1. Criar um tipo de conteúdo personalizado
A forma mais simples e fiável de registar um CPT sem uma única linha de código é o plugin Custom Post Type UI. Está instalado em mais de um milhão de sites e é mantido desde 2010, e a interface é intuitiva: os campos do formulário correspondem um a um aos argumentos da função register_post_type().

Depois de instalar o plugin, vá a CPT UI → Add/Edit Post Types. Preencha o mínimo:
- Post Type Slug: caracteres latinos, sem espaços (por exemplo
portfolio) - Plural Label: "Portfolio"
- Singular Label: "Trabalho"
Pode deixar as restantes definições com os valores padrão; os valores predefinidos cobrem a grande maioria dos cenários típicos. Clique em Add Post Type e o novo tipo aparecerá no painel de administração como um item de menu separado.
2. Configurar a página de arquivo
Para que as entradas do novo tipo sejam reunidas numa página separada, precisa de ativar explicitamente o suporte de arquivo. Está desativado por padrão.
Vá a CPT UI → Edit Post Types e selecione o tipo que criou na lista:

Desça até à secção Settings e preencha dois campos essenciais:

- Has Archive: defina como
True. Este é o interruptor para a página de arquivo. - Custom Rewrite Slug: o slug onde o arquivo estará acessível. Normalmente coincide com o slug do tipo de conteúdo (por exemplo
portfolio).
Guarde as alterações e navegue para http://YOUR_SITE/portfolio. Verá uma lista de todas as entradas deste tipo, estilizadas com o template padrão archive.php do tema ativo:

A página básica está pronta. Se a aparência padrão for suficiente, pode parar por aqui. Mas, na maioria dos casos, vai querer refinar o aspeto.
3. Template personalizado archive-{posttype}.php
O WordPress utiliza uma hierarquia de templates clara. Quando um visitante acede a uma página de arquivo de CPT, o núcleo procura ficheiros por esta ordem:
archive-{posttype}.phparchive.phpindex.php
Isto significa que só precisa de criar um ficheiro chamado archive-portfolio.php (onde portfolio é o slug do seu tipo de conteúdo) e o WordPress irá utilizá-lo automaticamente.
Passos:
Copie o conteúdo do archive.php do seu tema para um novo ficheiro archive-portfolio.php. Depois, modifique a marcação de acordo com as suas necessidades: oculte a data se não for relevante para um portefólio; apresente a miniatura num tamanho diferente; substitua o the_excerpt() padrão por the_content().
1 <?php 2 /* Template for Portfolio archive — overrides archive.php */ 3 4 if ( have_posts() ) { 5 while ( have_posts() ) { 6 the_post(); 7 // Your custom markup here 8 the_post_thumbnail( 'medium' ); 9 the_title( '<h3>', '</h3>' ); 10 the_excerpt(); 11 } 12 }
Se estiver a trabalhar com um tema FSE (Block Theme), o template de arquivo é criado no editor do site: Appearance → Editor → Templates → Add New Template → Archive: Portfolio. Sem PHP, puramente blocos, mas a lógica é a mesma: layout personalizado para um CPT específico.
4. Otimização SEO para a página de arquivo
Uma página de arquivo não é apenas um URL utilitário. Os motores de busca indexam-na e ela pode facilmente gerar tráfego para consultas comerciais como «portefólio de estúdio web» ou «equipa de agência».
Se tiver o Yoast SEO instalado, os metadados para arquivos de CPT são configurados num único local:

Abra Yoast SEO → Settings → Content Types, encontre o seu Custom Post Type e expanda a secção. Defina modelos para o título e a meta descrição:

Modelos recomendados:
- Título:
%%pt_plural%% %%page%%, %%sitename%% - Meta descrição:
%%pt_plural%%, work samples, case studies and projects. %%sitename%%
O Yoast substitui automaticamente as variáveis %%pt_plural%% e %%pt_single%% pelas definições do seu CPT. Não se esqueça de desativar o noindex para a página de arquivo se estiver ativado por padrão; a caixa de seleção Show in search results deve estar ativa.
5. Marcação Open Graph e barra lateral
Para garantir que uma imagem é obtida ao partilhar o link da página de arquivo nas redes sociais, adicione og:image através do hook wp_head. Insira o código no functions.php do seu tema ativo ou através do plugin Code Snippets:
1 add_action( 'wp_head', 'cpt_archive_og_image' ); 2 function cpt_archive_og_image() { 3 if ( is_post_type_archive( 'portfolio' ) ) { 4 echo '<meta property="og:image" content="' . 5 get_template_directory_uri() . '/images/portfolio-og.jpg' . '" />'; 6 } 7 }
A condição is_post_type_archive() é acionada apenas na página de arquivo do CPT especificado, pelo que a marcação não afetará outras páginas. Coloque a imagem na pasta do seu tema ou carregue-a através da biblioteca de multimédia e use o URL direto.
Um último retoque: a barra lateral. Em páginas de arquivo, é muitas vezes desnecessária, especialmente para portefólios ou equipas onde a largura dos cartões é importante. A maioria dos temas modernos permite desativar a barra lateral nas definições da página:

Em temas de blocos, mude o template para Full Width nas definições da página de arquivo. Em temas clássicos, procure Page Attributes → Template → Full Width no personalizador ou na metabox de edição.
📺 Vídeo: todo o processo em 8 minutos
Uma breve demonstração em inglês que cobre a criação do CPT, a ativação do arquivo e um template personalizado, do primeiro clique à página finalizada:
⁉️🤔 Perguntas frequentes
Porque é que a página de arquivo devolve um 404 depois de criar o CPT?
Muito provavelmente, não ativou o parâmetro Has Archive. Vá a CPT UI → Edit Post Types, encontre o seu tipo, defina Has Archive como True e especifique um Custom Rewrite Slug. Depois de guardar, não se esqueça de ir a Settings → Permalinks e clicar em "Save Changes"; isto limpa a cache das regras de reescrita.
Posso dispensar o plugin CPT UI?
Sim, os tipos de conteúdo personalizados podem ser registados no
functions.phpatravés da funçãoregister_post_type(). São cerca de 15 a 20 linhas de código, alguns minutos para um programador. O plugin oferece simplesmente uma interface visual e evita erros de digitação nos argumentos.
Como exibo entradas de CPT na página inicial?
Adicione
'has_archive' => trueaos argumentos deregister_post_type()e, para incluir entradas no feed principal, defina'public' => truee'exclude_from_search' => false. Para uma saída direcionada, useWP_Querycom o argumento'post_type' => 'portfolio'.
Qual é a diferença entre archive-{posttype}.php e taxonomy-{taxonomy}.php?
O primeiro trata da página com TODAS as entradas do CPT; o segundo trata da filtragem por um termo de taxonomia específico (por exemplo, "Tipo de projeto: landing page"). Ambos seguem a hierarquia de templates, mas são acionados em URLs diferentes.
É obrigatório um template personalizado?
Não. Se o
archive.phppadrão lhe convier, basta ativar o Has Archive e usá-lo. Um template personalizado é necessário quando precisa de marcação única: tamanhos de miniatura diferentes, sem datas, uma grelha em vez de uma lista.
E se o template padrão não funcionar para si?
Uma página de arquivo para conteúdos personalizados é algo que se configura uma vez e se esquece. O CPT UI mais algumas linhas no functions.php resolvem a questão por completo: sem plugins tudo-em-um, sem código extra no frontend.
Se depois de ler isto ainda tiver dúvidas sobre um tema específico ou combinação de plugins, deixe um comentário abaixo do artigo. Analisaremos o seu caso em separado.



