Um child theme do WordPress é um tema que herda o estilo e a funcionalidade de outro tema, chamado tema pai. Ativar um child theme diz ao WordPress para usar o pai para tudo exceto arquivos que o filho sobrescreve. O ponto inteiro: quando o tema pai é atualizado pelo seu desenvolvedor (o que acontece regularmente, frequentemente com correções de segurança), suas customizações sobrevivem intactas. Sem um child theme, cada customização que você faz a um tema é apagada na próxima atualização. Com um, suas mudanças vivem em uma pasta separada que atualizações deixam em paz.
Por que preciso de um child theme em 2026?
Três razões que não mudaram em quinze anos:
- Sobreviver às atualizações do tema pai. Desenvolvedores de tema lançam atualizações mensalmente ou mais. Cada atualização sobrescreve cada arquivo na pasta do tema pai. Se você editou
header.phpoustyle.cssdiretamente, suas edições se foram. Um child theme tem sua própria pasta que atualizações nunca tocam. - Sobrescrever apenas arquivos específicos. Um child theme pode seletivamente substituir qualquer arquivo do pai. Quer um
footer.phpcustomizado? Coloque no child theme. Quer o mesmo footer.php que o pai mas com um ajuste de CSS? Apenas adicione o CSS aostyle.cssdo filho e deixe footer.php em paz. - Adicionar PHP customizado sem forkar o tema. O
functions.phpdo child theme carrega junto com o do pai. Adicione filtros, custom post types, ações removidas, ou qualquer PHP sem tocar no código do pai.
A abordagem "vou apenas editar o pai" quebra na primeira vez que o tema se auto-atualiza, o que num site WordPress típico acontece em semanas. Use um child theme.
Quando NÃO preciso de um child theme?
Três cenários onde um child theme é a ferramenta errada:
- Se você só personaliza através do Customizer ou Site Editor. Mudanças de cor, escolhas de fonte e configurações similares feitas via Aparência, Personalizar (Clássico) ou o Site Editor (temas em Blocos) são armazenadas no banco de dados, não em arquivos do tema. Sobrevivem a atualizações sem um child theme.
- Se você só adiciona CSS customizado. O WordPress tem um painel "CSS adicional" embutido no Customizer. Pequenos ajustes de CSS vivem ali e persistem através de atualizações. Um child theme é exagero para adicionar duas regras CSS.
- Se você usa um tema em blocos (FSE) e só personaliza templates. Temas Full Site Editing armazenam customizações de template no banco de dados, acessíveis via Aparência, Editor. A necessidade de um child theme é muito menor. Temas em blocos ainda podem se beneficiar de um child theme para PHP customizado ou overrides de theme.json, mas o caso comum de "quero mover o logo e mudar o texto do rodapé" não exige mais um.
Se você se vê editando arquivos PHP, arquivos de template, ou querendo adicionar mais do que algumas linhas de CSS, você precisa de um child theme. Para tudo mais em 2026, o Customizer ou Site Editor é suficiente.
Método 1: instalar um child theme manualmente (5 minutos)
O child theme mínimo são dois arquivos numa pasta. Passo a passo:
Passo 1: criar a pasta do child theme
Conecte via SFTP (ou o gerenciador de arquivos no seu painel de hospedagem) e navegue para /wp-content/themes/. Você verá pastas para cada tema instalado, como twentytwentyfour/ ou astra/. Crie uma nova pasta ao lado delas. Convenção de nomes: nome do pai mais -child. Se seu tema pai é Astra, nomeie a pasta astra-child.
Passo 2: criar style.css com o cabeçalho requerido
Dentro da sua nova pasta astra-child, crie um arquivo chamado style.css. Abra em um editor de texto e adicione este bloco de comentário de cabeçalho:
/*
Theme Name: Astra Child
Theme URI: https://seusite.com
Description: Child theme para Astra
Author: Seu Nome
Author URI: https://seusite.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/A linha Template é a única que deve corresponder exatamente: tem que ser o nome da pasta do tema pai (case-sensitive). As outras linhas podem dizer o que você quiser; aparecem em Aparência, Temas.
Passo 3: criar functions.php para enfileirar estilos do pai
Na mesma pasta astra-child, crie functions.php:
<?php
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), ['parent-style']);
});Isso garante que o stylesheet do tema pai carregue primeiro, depois o do filho, então suas customizações sobrescrevem o pai. Sem isso, o style.css do child theme está vazio e o site carrega sem estilo. Muitos tutoriais antigos ainda recomendam usar @import url('../astra/style.css'); no style.css do filho. Não use a abordagem @import em 2026. É lenta (força uma segunda requisição HTTP antes de qualquer CSS ser parseado), não é mais recomendada pelo codex do WordPress, e a abordagem de enqueue acima é o padrão moderno.
Passo 4: ativar o child theme
Vá para Aparência, Temas no admin do WordPress. Você verá seu novo child theme listado (pode mostrar uma miniatura placeholder). Clique em Ativar. Seu site deve parecer idêntico ao anterior — mesmas fontes, mesmo layout, mesmas cores — porque o filho herda tudo do pai.
Se o site parece sem estilo, o enqueue no functions.php está errado. Verifique que a linha Template: no style.css corresponde exatamente ao nome da pasta do pai.
Método 2: usar um plugin de child theme (sem código)
Para usuários que preferem não tocar em SFTP, plugins automatizam a criação do child theme. Duas escolhas confiáveis em 2026:
- Child Theme Configurator. Grátis, ativamente mantido, a opção mais popular. Instala em dois cliques, cria o child theme de qualquer pai ativo, permite copiar arquivos do pai para o filho para edição através da UI do admin. A escolha pragmática para a maioria dos usuários.
- Generate Child Theme. Plugin mais novo focado especificamente em temas em blocos. Útil se você está usando um tema Full Site Editing como Twenty Twenty-Four onde os padrões são diferentes.
Passos da abordagem com plugin:
- Instale e ative o plugin.
- Vá para Ferramentas, Child Themes (Child Theme Configurator) ou seu equivalente.
- Selecione o tema pai.
- Clique em "Criar novo child theme".
- O plugin gera a pasta, style.css e functions.php corretamente. Vá para Aparência, Temas e ative.
O plugin pode ser desativado depois de criar o child theme. O child theme em si não depende do plugin.
Como personalizo o child theme uma vez que está ativo?
Três categorias de personalização:
Personalizações CSS
Adicione regras CSS ao style.css do child theme, abaixo do comentário de cabeçalho. O CSS do filho carrega depois do pai, então suas regras sobrescrevem a menos que o pai use !important ou seletores de maior especificidade.
/* Em astra-child/style.css */
.site-title {
font-family: Georgia, serif;
color: #2c3e50;
}
.entry-content a {
text-decoration: underline;
}Overrides de template
Para personalizar um arquivo de template (header, footer, layout de single post, etc.), copie o arquivo do tema pai para o child theme no mesmo path. WordPress então usará a versão do filho em vez do pai.
Exemplo: personalizar footer.php:
- Copie
wp-content/themes/astra/footer.phpparawp-content/themes/astra-child/footer.php. - Edite a cópia do filho.
- Salve. O próximo carregamento de página usa sua versão.
Temas em blocos são diferentes: em vez de arquivos de template PHP, eles usam arquivos HTML em uma pasta templates/, e theme.json para estilos globais. O mecanismo de override é o mesmo; copie o arquivo do pai para o filho no mesmo path relativo.
Personalizações PHP
Adicione filtros, ações ou código customizado ao functions.php do filho — nunca ao do pai. O functions.php do filho carrega antes do pai, então pode registrar filtros que o pai depois verifica.
// Em astra-child/functions.php
// Mudar a URL do logo de login do WordPress
add_filter('login_headerurl', function () {
return home_url();
});
// Desabilitar emojis do WordPress
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');Como movo minhas configurações do Customizer para o child theme?
Ponto de dor comum: você configurou cores, fontes e widgets no Customizer sob o tema pai. Ativar o child theme parece resetá-los.
A verdade: configurações do Customizer são armazenadas por tema. Cada tema (pai e filho são "temas" diferentes para o WordPress) tem suas próprias configurações. Para preservar suas configurações:
- Sob o tema pai, vá para Aparência, Personalizar, clique no ícone de engrenagem e "Exportar" (alguns temas fornecem isso; nem todos). Ou use um plugin como Customizer Export/Import.
- Ative o child theme.
- Volte ao Customizer e importe o arquivo.
Se seu tema não suporta exportação do Customizer, a alternativa é configurar manualmente as mesmas configurações sob o child theme. Para widgets, WordPress 4.2+ provê um workflow "Widget Importer & Exporter" via o menu Ferramentas ou via plugins como Widget Importer Exporter.
E quanto a temas em blocos (Full Site Editing)?
Para temas em blocos (Twenty Twenty-Two em diante, e temas modernos construídos sobre FSE), a estrutura do child theme é ligeiramente diferente. Os dois arquivos mínimos se tornam:
- style.css com o mesmo bloco de cabeçalho, mas
Template: pasta-tema-paireferenciando o tema pai em blocos. - theme.json na pasta do filho. Este arquivo sobrescreve o theme.json do pai. Inclua apenas as configurações que você quer mudar; os valores do pai são usados para tudo o mais.
Você também pode sobrescrever templates copiando arquivos HTML de template do pai de templates/ e parts/ para o child theme no mesmo path.
O Full Site Editor no admin do WordPress pode ler overrides do child theme e permite personalizar templates visualmente. Personalizações feitas no editor são armazenadas no banco de dados e sobrevivem a atualizações do tema; você só precisa do child theme para coisas que não pode configurar através do editor (como PHP customizado em functions.php).
Erros comuns ao instalar um child theme
- Nome
Template:errado em style.css. Se o valor não corresponde exatamente ao nome da pasta do tema pai (case-sensitive), WordPress trata o filho como um tema quebrado. O nome da pasta, não o nome de exibição, é o que conta. - Esquecer
<?phpno topo do functions.php. O arquivo é silenciosamente tratado como texto, os estilos do pai não são enfileirados, e o site carrega sem estilo. Sempre comece arquivos PHP com<?php. - Usar @import no style.css para carregar CSS do pai. Funciona mas lento e desencorajado. Use a abordagem wp_enqueue_style em functions.php.
- Copiar cada arquivo do pai para o filho "para garantir". Não faça isso. Copie apenas arquivos que você realmente quer sobrescrever. Arquivos no filho que correspondem ao pai usarão a versão do filho; arquivos apenas no pai usarão a versão do pai. Cópia em massa derrota o benefício de manutenibilidade de um child theme.
- Editar o child theme em um site live sem staging. Uma linha ruim em functions.php deixa o site com tela branca. Para edições PHP não-triviais, use um ambiente de staging ou pelo menos um plugin de code-snippets que captura erros PHP antes de salvar.
- Nomear a pasta do child theme com espaços. Atenha-se a letras minúsculas e hífens. Espaços e caracteres especiais quebram a referência
Template:em alguns servidores. - Trocar de tema pai sem deletar o filho. Um child theme referencia seu pai pelo nome. Se você troca para um tema pai diferente sem atualizar o filho, o filho fica quebrado. Ou delete o filho ou atualize sua linha
Template:.
Como atualizo um tema pai sem quebrar o filho?
Este é o ponto inteiro de um child theme: atualizações do pai não devem quebrá-lo. Três cenários:
- Atualizações normais. Clique em "Atualizar" no admin. A pasta do tema pai é substituída; a pasta do filho fica intocada. Verifique que o site ainda parece certo.
- Atualizações de versão maior (1.x para 2.x). Às vezes templates mudam significativamente. Se seu child theme sobrescreve templates, o override pode agora referenciar funções ou hooks que não existem mais. Verifique o changelog do tema pai antes de atualizações maiores. Teste em staging.
- Tema pai abandonado. Se o pai para de receber atualizações (correções de segurança), seu filho está preso num tema vulnerável. A migração é para um tema pai mantido. O child theme torna isso mais fácil porque a maior parte do seu CSS e PHP customizado pode ser reutilizado; apenas overrides de template precisam ser refeitos.
Onde encontro quais arquivos de tema sobrescrever?
A hierarquia de templates do WordPress documenta qual arquivo é carregado para qual tipo de conteúdo. Comuns:
header.php— topo de cada páginafooter.php— fundo de cada páginasingle.php— layout de single postpage.php— layout de página únicaarchive.php— arquivos de categoria/tag/autorfunctions.php— personalizações PHPstyle.css— CSS
Para temas em blocos, os equivalentes vivem em templates/ como arquivos .html e em theme.json para estilização.
O que o InspectWP verifica
O InspectWP detecta se um tema é um child theme via o campo Template: em style.css. A seção WordPress do relatório lista tanto o pai quanto o child theme, com versões e datas da última atualização. Um site rodando um child theme com um pai que não foi atualizado em mais de um ano é sinalizado porque o pai provavelmente tem vulnerabilidades não corrigidas. Um site rodando um child theme desatualizado sobre um pai atualizado é informativo; geralmente significa que o desenvolvedor que configurou o site parou de manter o filho mas o pai continua a receber correções de segurança através do mantenedor do pai. A recomendação pragmática é manter ambos atualizados, documentar as personalizações do child theme em seu cabeçalho style.css, e preferir child themes a edições diretas mesmo em configurações de hospedagem gerenciada onde atualizações automáticas de tema são comuns.