Se você já editou o CSS ou um arquivo de template do seu tema WordPress e perdeu tudo numa atualização, já sabe o problema: alterações feitas diretamente no tema pai são apagadas quando o tema é atualizado.
A solução é criar um tema filho (child theme). É simples, seguro e é a forma correta de personalizar qualquer tema WordPress — seja ele um tema que você instalou ou o tema padrão do WordPress.
Neste tutorial, você vai aprender o que é um child theme, como criar do zero com dois arquivos, como funciona a herança de templates e quando vale a pena criar um tema próprio usando o Underscores.
O que é um tema filho (child theme)?
Um tema filho é um tema WordPress que herda toda a aparência e funcionalidade de outro tema, chamado de tema pai. Ele permite que você faça alterações — CSS, templates, funções — sem mexer nos arquivos originais do tema pai.
Quando o WordPress encontra um tema filho ativo, ele carrega primeiro os arquivos do child theme. Se não encontrar um arquivo específico no child theme, usa a versão do tema pai. É isso que permite sobrescrever apenas o que você precisa.
Exemplo prático: se você quer mudar o cabeçalho do site, basta copiar o arquivo header.php do tema pai para a pasta do child theme e editar lá. O WordPress vai usar a sua versão. O restante do tema continua funcionando normalmente a partir do tema pai.
Por que usar child theme?
Três razões principais:
1. Atualizações seguras. Quando o tema pai é atualizado (correções de segurança, novos recursos, compatibilidade), suas alterações no child theme permanecem intactas. Sem child theme, tudo é perdido.
2. Organização. Você mantém suas customizações separadas do código original. Fica fácil saber o que é seu e o que veio com o tema.
3. Reversão rápida. Se algo quebrar, basta desativar o child theme e voltar ao tema pai original. Não precisa restaurar backup nem reconfigurar nada.
O único caso em que child theme não faz sentido é quando você quer criar um tema completamente novo — aí usamos o Underscores, que vamos cobrir mais adiante.
Como criar um child theme passo a passo
Vamos criar um child theme do tema Twenty Twenty-Four (o tema padrão do WordPress em 2024). O processo é igual para qualquer tema: muda apenas o nome. Se você estiver usando uma versão mais recente do WordPress, verifique qual é o tema padrão atual e ajuste os exemplos conforme necessário.
1. Crie a pasta do child theme
Acesse os arquivos do WordPress via FTP ou pelo gerenciador de arquivos da hospedagem. Navegue até:
wp-content/themes/
Crie uma nova pasta com o nome do child theme. Por exemplo:
wp-content/themes/twentytwentyfour-child/
A convenção é usar o nome do tema pai seguido de -child, mas você pode usar qualquer nome.
2. Crie o arquivo style.css
Dentro da pasta do child theme, crie um arquivo chamado style.css com o seguinte conteúdo:
/*
Theme Name: Twenty Twenty-Four Child
Theme URI: https://universowp.com.br
Description: Child theme do Twenty Twenty-Four
Author: Seu Nome
Author URI: https://seusite.com.br
Template: twentytwentyfour
Version: 1.0.0
Text Domain: twentytwentyfour-child
*/
/* Suas customizações de CSS vão aqui */
Atenção ao campo Template: ele deve ser exatamente igual à pasta do tema pai. Se o tema pai está em wp-content/themes/twentytwentyfour/, o valor é twentytwentyfour. Erros aqui impedem a ativação do child theme.
3. Crie o arquivo functions.php
Na mesma pasta, crie o arquivo functions.php:
Este trecho carrega o CSS do tema pai usando wp_enqueue_style(). É a forma recomendada pela equipe do WordPress.
Não use @import no style.css do child theme. Era o método antigo, mas é menos eficiente porque carrega o CSS de forma sequencial em vez de paralela, prejudicando o tempo de carregamento. Para saber mais sobre performance em temas, confira nosso guia sobre como aumentar a velocidade do WordPress.
4. Ative o child theme
Antes de ativar, faça um backup completo do site. Se algo der errado, você pode restaurar rapidamente.
No painel do WordPress, vá em Aparência → Temas. Você verá o child theme listado. Clique em Ativar.
Pronto. Seu site agora usa o child theme. A aparência deve ser idêntica à do tema pai — afinal, você ainda não fez nenhuma alteração.
Como funciona a template hierarchy
Para saber qual arquivo do tema o WordPress vai usar para exibir cada página, é preciso entender a template hierarchy. Não é preciso memorizar tudo — basta entender o fluxo.
Quando alguém acessa uma página do seu site, o WordPress segue uma ordem de busca:
- Post (artigo do blog): primeiro procura
single-{post-type}-{slug}.php, depoissingle-{post-type}.php, depoissingle-post.php, depoissingle.php, depoissingular.php, e por fimindex.php.
- Página: primeiro
page-{slug}.php, depoispage-{id}.php, depoispage.php, depoissingular.php, depoisindex.php.
- Arquivo de categoria:
category-{slug}.php→category-{id}.php→category.php→archive.php→index.php.
- Arquivo de tag:
tag-{slug}.php→tag.php→archive.php→index.php.
- Arquivo de autor:
author-{nicename}.php→author.php→archive.php→index.php.
- Pesquisa:
search.php→index.php.
- Página 404:
404.php→index.php.
- Homepage:
front-page.php. Se não existir, o WordPress verifica se a homepage exibe posts recentes ou uma página estática (configurado em Configurações → Leitura). Para posts recentes:home.php→index.php. Para página estática:page-{id}.php→page.php→index.php.
O index.php é sempre o fallback final. Todo tema precisa dele.
Na prática: se você quer customizar como posts individuais são exibidos, copie o single.php do tema pai para o child theme e edite. Se quer mudar o layout de páginas, copie o page.php. Para categorias, o category.php ou archive.php.
Para visualizar a template hierarchy de forma interativa, acesse a documentação oficial do WordPress ou use o plugin Show Current Template, que exibe qual template está sendo usado na página atual.
Sobrescrevendo templates do tema pai
Para sobrescrever um template, o processo é sempre o mesmo:
- Encontre o arquivo no tema pai (
wp-content/themes/seu-tema-pai/).
- Copie para a pasta do child theme (
wp-content/themes/seu-tema-child/).
- Edite o arquivo no child theme.
O WordPress vai usar a sua versão. O tema pai continua intacto.
Arquivos mais comuns para customizar
| Arquivo | O que controla |
|---|---|
header.php |
Cabeçalho do site (logo, menu, topo) |
footer.php |
Rodapé do site |
sidebar.php |
Barra lateral (widgets) |
single.php |
Layout de posts individuais |
page.php |
Layout de páginas |
archive.php |
Layout de listagens (categorias, tags, autor) |
front-page.php |
Página inicial |
404.php |
Página de erro 404 |
search.php |
Resultados de pesquisa |
comments.php |
Formulário e lista de comentários |
functions.php |
Funções PHP do tema (não substitui o do pai) |
Importante: o functions.php do child theme NÃO substitui o do tema pai. Ambos são carregados — primeiro o do tema pai, depois o do child theme. Isso permite adicionar funções extras sem perder as originais.
Adicionando CSS personalizado
A forma mais simples de customizar a aparência é adicionar CSS no style.css do child theme.
Exemplo: mudar a cor dos títulos.
h1, h2, h3 {
color: #1a1a2e;
}
.entry-title {
font-size: 2rem;
margin-bottom: 1.5rem;
}
.site-header {
background-color: #f8f8f8;
border-bottom: 2px solid #e0e0e0;
}
Todo o CSS que você adiciona no style.css do child theme é carregado depois do CSS do tema pai, então suas regras sobrescrevem as originais naturalmente.
Se precisar de mais especificidade, use seletores mais específicos ou !important como último recurso:
/* Evite usar !important — use apenas quando necessário */
.site-title a {
color: #e63946 !important;
}
Adicionando funções no functions.php
O functions.php do child theme é o lugar certo para adicionar funcionalidades ao tema.
Exemplo: adicionar suporte a logotipo personalizado
100,
'width' => 300,
'flex-height' => true,
'flex-width' => true,
) );
}
add_action( 'after_setup_theme', 'uwp_theme_setup' );
Exemplo: registrar uma sidebar personalizada
'Sidebar do Blog',
'id' => 'sidebar-blog',
'description' => 'Widgets exibidos na barra lateral do blog',
'before_widget' => '',
'before_title' => '',
'after_title' => '
',
) );
}
add_action( 'widgets_init', 'uwp_register_sidebar' );
Exemplo: remover uma ação do tema pai
Se o tema pai adiciona algo que você não quer, é possível remover:
remove_action( 'wp_head', 'wp_generator' );
// Remove uma função específica do tema pai (exemplo genérico)
// add_action( 'after_setup_theme', function() {
// remove_action( 'wp_enqueue_scripts', 'funcao_do_tema_pai' );
// }, 20 );
Cuidado: remover funções do tema pai pode quebrar funcionalidades. O exemplo acima com wp_generator é seguro, mas antes de remover qualquer outra ação, certifique-se de entender o que ela faz. Teste sempre em ambiente de staging antes de aplicar em produção.
Quando criar um tema do zero: Underscores (_s)
Child themes funcionam bem quando você quer personalizar um tema existente. Mas quando as mudanças são tão profundas que quase nada do tema original sobra, vale a pena criar um tema próprio.
O Underscores (_s) é o starter theme oficial da equipe do WordPress. Ele não é um tema bonito para usar — é um ponto de partida para desenvolvedores.
O que o Underscores oferece
- Estrutura de pastas e arquivos completa e seguindo padrões do WordPress.
- Templates organizados conforme a template hierarchy.
functions.phpcom funções essenciais já implementadas.
- Suporte a recursos modernos do WordPress (thumbnails, menus, widgets, customizer).
- Código limpo, bem comentado e fácil de entender.
- Sem dependência de frameworks ou bibliotecas externas.
Como usar o Underscores
- Acesse underscores.me.
- Preencha o nome do tema (ex: "Meu Tema UniversoWP").
- Opcionalmente, marque opções avançadas (sass, customizer, etc.).
- Clique em Generate.
- Baixe o arquivo
.zipgerado.
- Instale no WordPress: Aparência → Temas → Adicionar novo → Enviar tema.
- Ative e comece a editar.
O Underscores gera um tema funcional, mas visualmente básico. Você adiciona o design — CSS, imagens, tipografia — por cima da estrutura.
Child theme vs. Underscores: qual usar?
| Situação | Recomendação |
|---|---|
| Mudar cores, fontes, espaçamento | Child theme |
| Alterar layout de um template específico | Child theme |
| Sobrescrever header ou footer | Child theme |
| Adicionar funções PHP simples | Child theme |
| Criar um tema do zero para cliente | Underscores |
| Design completamente diferente do tema pai | Underscores |
| Aprender desenvolvimento de temas | Underscores |
| Precisa de controle total sobre o código | Underscores |
Na prática, muitos desenvolvedores começam com child themes e migram para Underscores quando as customizações ficam mais complexas.
Boas práticas e erros comuns
Faça
- Sempre faça backup antes de ativar um child theme ou alterar templates.
- Use
wp_enqueue_style()para carregar CSS do tema pai.
- Copie apenas os arquivos que vai editar — não copie a pasta inteira do tema pai.
- Use nomes de funções com prefixo (ex:
uwp_ouseunome_) para evitar conflitos com plugins.
- Teste em ambiente de staging antes de aplicar no site ao vivo.
- Documente suas alterações com comentários no código.
- Mantenha o tema pai atualizado — o child theme vai herdar as atualizações automaticamente.
Evite
- Nunca edite o tema pai diretamente. Perde nas atualizações.
- Não use
@importpara carregar o CSS do tema pai. Usewp_enqueue_style().
- Não copie todos os arquivos do tema pai para o child theme. Isso anula a herança e dificulta manutenção.
- Não use
!importantcomo primeira opção. Tente usar seletores mais específicos.
- Não esqueça o campo
Templatenostyle.css. Erro comum que impede a ativação.
- Não faça alterações em produção sem testar antes.
Erros comuns ao criar child theme
Erro: "O tema está instalado, mas falta a folha de estilos."
Verifique se o style.css está na pasta correta e se o cabeçalho tem os campos obrigatórios (Theme Name e Template).
Erro: o child theme ativa, mas o CSS do tema pai não carrega.
Confirme se o functions.php está usando wp_enqueue_style() corretamente e se o valor de Template no style.css bate com a pasta do tema pai.
Erro: alterações no child theme não aparecem.
Verifique o cache do navegador e do plugin de cache do WordPress. Limpe ambos e teste novamente.
Erro: o site quebra ao ativar o child theme.
Geralmente é um erro de sintaxe no functions.php. Acesse o site via FTP, corrija o arquivo e tente novamente. Se precisar, desative o child theme renomeando a pasta via FTP.
FAQ
Posso usar child theme com qualquer tema WordPress?
Na maioria dos casos, sim. Temas bem estruturados funcionam com child themes. Temas mal codificados podem ter problemas. Se o tema pai não seguir os padrões do WordPress, a herança pode falhar.
O child theme deixa o site mais lento?
Não. O impacto é mínimo — um arquivo CSS extra e um arquivo PHP a mais. Nada comparável a um plugin.
Preciso saber PHP para usar child theme?
Para customizações de CSS, não. Para alterar templates, é útil saber o básico — mas os templates do WordPress usam uma mistura de HTML, PHP e tags do WordPress que são fáceis de entender copiando e adaptando.
E se o tema pai for descontinuado?
Se o tema pai deixar de receber atualizações, seu child theme continua funcionando, mas perde atualizações de segurança e compatibilidade. Nesse caso, planeje a migração para outro tema.
Posso ter mais de um child theme?
Não ao mesmo tempo. Você pode criar vários child themes, mas apenas um fica ativo por vez. Cada child theme é vinculado a um tema pai específico.
Funciona com construtores de páginas?
Sim. Child themes funcionam normalmente com Elementor, Divi, Beaver Builder e outros construtores. O child theme cuida da estrutura; o construtor cuida do design das páginas.
Posso criar child theme de um child theme?
Não. O WordPress suporta apenas um nível de herança. Se precisar de mais customização, considere criar um tema próprio com Underscores.
Conclusão
Criar um tema filho é uma das habilidades mais úteis para quem administra ou desenvolve sites WordPress. Com apenas dois arquivos — style.css e functions.php — você protege suas customizações de atualizações, mantém o código organizado e pode sobrescrever qualquer template do tema pai.
Para mudanças simples (cores, fontes, layout de um template), child theme é a escolha certa. Para projetos maiores ou temas do zero, o Underscores continua sendo a base oficial mais confiável.
Quer ir além? Confira nosso guia sobre o editor Gutenberg para entender como blocos e temas trabalham juntos, ou conheça os principais construtores de páginas para montar layouts visuais sem código.



