Tema filho WordPress: como criar child theme passo a passo

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:

  1. Post (artigo do blog): primeiro procura single-{post-type}-{slug}.php, depois single-{post-type}.php, depois single-post.php, depois single.php, depois singular.php, e por fim index.php.
  1. Página: primeiro page-{slug}.php, depois page-{id}.php, depois page.php, depois singular.php, depois index.php.
  1. Arquivo de categoria: category-{slug}.phpcategory-{id}.phpcategory.phparchive.phpindex.php.
  1. Arquivo de tag: tag-{slug}.phptag.phparchive.phpindex.php.
  1. Arquivo de autor: author-{nicename}.phpauthor.phparchive.phpindex.php.
  1. Pesquisa: search.phpindex.php.
  1. Página 404: 404.phpindex.php.
  1. 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.phpindex.php. Para página estática: page-{id}.phppage.phpindex.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:

  1. Encontre o arquivo no tema pai (wp-content/themes/seu-tema-pai/).
  1. Copie para a pasta do child theme (wp-content/themes/seu-tema-child/).
  1. 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' => '
', 'after_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.php com 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

  1. Acesse underscores.me.
  1. Preencha o nome do tema (ex: "Meu Tema UniversoWP").
  1. Opcionalmente, marque opções avançadas (sass, customizer, etc.).
  1. Clique em Generate.
  1. Baixe o arquivo .zip gerado.
  1. Instale no WordPress: Aparência → Temas → Adicionar novo → Enviar tema.
  1. 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_ ou seunome_) 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 @import para carregar o CSS do tema pai. Use wp_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 !important como primeira opção. Tente usar seletores mais específicos.
  • Não esqueça o campo Template no style.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.


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *