Como criar um child theme no WordPress (sem perder suas alterações)

Modificar temas no WordPress sem um child theme significa perder tudo nas atualizações. Aprenda a criar o seu do zero em menos de 15 minutos — sem plugins, sem complicação.

Child theme WordPress

Quando você faz alterações diretamente nos arquivos de um tema WordPress — editando o style.css, o functions.php ou qualquer template — essas alterações são sobrescritas na próxima atualização do tema. Um child theme resolve esse problema: ele herda tudo do tema pai, mas mantém suas personalizações separadas e protegidas.

Por que usar um child theme

  • Proteção contra atualizações — suas alterações ficam em arquivos separados e não são sobrescritas
  • Organização — todo o código personalizado fica em um único lugar, fácil de gerenciar e versionar
  • Segurança — você pode atualizar o tema pai normalmente, recebendo correções de segurança
  • Reversibilidade — se algo der errado, basta reativar o tema pai e tudo volta ao normal
Quando não usar child theme:

Se você está usando um page builder (Elementor, Beaver Builder) e faz todas as personalizações por ele, um child theme pode ser desnecessário. As alterações feitas pelo page builder são salvas no banco de dados, não nos arquivos do tema.

Como funciona um child theme

Um child theme é, no mínimo, uma pasta com dois arquivos: style.css (com um cabeçalho que indica qual é o tema pai) e functions.php (que carrega os estilos do tema pai). O WordPress primeiro carrega o tema pai e depois aplica por cima as personalizações do child theme.

Se você criar um arquivo de template no child theme com o mesmo nome de um do tema pai (por exemplo, header.php), o WordPress usará a versão do child theme em vez da original. Isso permite sobrescrever qualquer template sem modificar o tema pai.

Criar o child theme passo a passo

Vamos criar um child theme para o tema Astra (o processo é idêntico para qualquer tema). Você vai precisar de acesso via FTP ou pelo gerenciador de arquivos da hospedagem.

1

Crie a pasta do child theme

Acesse /wp-content/themes/ e crie uma pasta chamada astra-child (o nome pode ser qualquer um, mas a convenção é usar [tema-pai]-child).

2

Crie o arquivo style.css

Dentro da pasta astra-child, crie um arquivo style.css com este conteúdo:

/*
Theme Name: Astra Child
Template: astra
Version: 1.0
*/

O campo Template deve conter exatamente o nome da pasta do tema pai (em minúsculas). Para outros temas, mude astra para o nome correto.

3

Crie o arquivo functions.php

Na mesma pasta, crie um arquivo functions.php com este código:

<?php
add_action('wp_enqueue_scripts', function() {
  wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
});

Esse código garante que os estilos do tema pai sejam carregados antes dos estilos do child theme.

4

Ative o child theme

No painel WordPress, vá em Aparência → Temas. O child theme aparecerá na lista. Clique em Ativar. O site deve manter a mesma aparência — agora usando o child theme.

Personalizar o child theme

Adicionar CSS personalizado

Abra o style.css do child theme e adicione suas regras abaixo do cabeçalho. Elas serão carregadas após o CSS do tema pai e, portanto, terão prioridade.

Adicionar funções PHP

Use o functions.php do child theme para adicionar hooks, filtros, custom post types, shortcodes e qualquer funcionalidade extra. O functions.php do child theme é carregado antes do tema pai, não depois.

Sobrescrever templates

Para modificar um template (como header.php, single.php ou footer.php), copie o arquivo do tema pai para o child theme e edite a cópia. O WordPress usará automaticamente a versão do child theme.

Dica importante:

Ao sobrescrever templates, você perde as atualizações desse template específico. Use hooks e filtros sempre que possível — sobrescreva templates apenas quando não houver alternativa.

Dicas e boas práticas

  • Mantenha o child theme em controle de versão (Git) para rastrear alterações
  • Documente as alterações — adicione comentários explicando o que cada mudança faz
  • Use o Customizer do WordPress para alterações visuais simples antes de editar arquivos
  • Teste em ambiente de staging antes de alterar o site em produção
  • Não coloque plugins no child theme — use a pasta padrão de plugins

Perguntas frequentes

O que é um child theme?
Um child theme é um tema que herda todas as funcionalidades e estilos de um tema pai (parent theme), permitindo que você faça alterações sem modificar os arquivos originais. As atualizações do tema pai não afetam suas personalizações.
Child theme deixa o site mais lento?
Não de forma perceptível. O WordPress carrega primeiro o CSS do tema pai e depois o do child theme. O impacto na performance é insignificante e compensado pela segurança de manter as alterações separadas.
Posso criar um child theme de qualquer tema?
Sim. Qualquer tema WordPress pode ter um child theme. Temas populares como Astra, GeneratePress e Flavflat são especialmente bem preparados para child themes, com hooks e filtros bem documentados.
Preciso saber PHP para criar um child theme?
Para criar o child theme básico (style.css + functions.php), não precisa. Apenas copiar e colar o código é suficiente. Para personalizações avançadas como modificar templates, conhecimento básico de PHP e HTML é necessário.