Child theme WordPress: porque usar e como criar corretamente

Editar directamente os ficheiros de um tema WordPress é um dos erros mais comuns em desenvolvimento web — e o mais caro. O próximo update do tema apaga todas as personalizações. Um child theme resolve este problema de forma elegante, mas é frequentemente mal implementado ou completamente ignorado em projectos de agência.

O que é um child theme e porque existe

Um child theme é um tema WordPress que herda todos os estilos e funcionalidades do "tema pai", mas permite sobrescrever apenas o que é necessário personalizar. Quando o tema pai é actualizado, o child theme não é afectado — as personalizações mantêm-se intactas.

O WordPress carrega os ficheiros do child theme com prioridade sobre o tema pai. Se um ficheiro existir no child theme, o WordPress usa esse ficheiro. Se não existir, usa o ficheiro correspondente do tema pai. Isto permite modificar apenas o necessário sem duplicar código.

Quando é obrigatório usar child theme

Sempre que qualquer uma destas condições se aplica:

  • Editar o functions.php do tema
  • Editar qualquer template PHP do tema (header.php, footer.php, single.php, etc.)
  • Adicionar CSS personalizado que vai além do que o Customizer do WordPress suporta
  • O tema pai vai ser actualizado no futuro (ou seja, sempre)

A única excepção: temas desenvolvidos 100% internamente pela agência que não têm updates externos — nesses casos, o conceito de child theme não se aplica.

Quando um child theme pode não ser necessário

Com a adopção do editor de blocos Gutenberg e de construtores de blocos (como Kadence Blocks, GeneratePress), cada vez mais personalizações são feitas via editor visual sem necessidade de editar ficheiros PHP. Temas como Kadence, GeneratePress ou Astra são desenhados para customização via painel sem child theme.

Mesmo assim, se houver qualquer personalização de código (PHP ou CSS personalizado que não é suportado pelo painel), um child theme continua a ser o método correcto.

Como criar um child theme WordPress

Estrutura mínima

Um child theme requer apenas uma pasta e dois ficheiros:

/wp-content/themes/meu-tema-child/
    style.css
    functions.php

style.css — o ficheiro essencial

/*
 Theme Name: Meu Tema Child
 Theme URI: https://exemplo.pt
 Description: Child theme para Meu Tema
 Author: Agência
 Template: meu-tema-pai
 Version: 1.0.0
*/

O campo Template deve conter o nome exacto da pasta do tema pai (não o "Theme Name" — a pasta).

functions.php — carregar estilos do tema pai

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

Este código garante que os estilos do tema pai são carregados. Sem isto, o child theme não herda o CSS do tema pai.

Sobrescrever templates

Para modificar um template PHP do tema pai, copiar o ficheiro original para o child theme mantendo a mesma estrutura de pastas, e editar a cópia:

# Copiar single.php do tema pai para o child theme
/wp-content/themes/meu-tema-child/single.php

O WordPress usa agora o single.php do child theme, e o template do pai pode ser actualizado sem afectar as personalizações.

Criar child theme automaticamente

Para agilizar a criação, usar o plugin Child Theme Configurator ou via WP-CLI:

wp scaffold child-theme meu-tema-child --parent_theme=meu-tema-pai --activate

O que verificar em sites de clientes existentes

Numa auditoria de sites de clientes, verificar:

  • O tema activo é um child theme ou o tema pai directamente?
  • Existem edições nos ficheiros do tema pai que vão ser perdidas no próximo update?
  • O CSS personalizado está no Customizer (seguro) ou directamente no style.css do tema pai (não seguro)?

Sites de clientes com personalizações em risco de serem perdidas?

O nosso suporte WordPress especializado inclui auditoria de temas e migração de personalizações para child themes correctamente estruturados.

Auditar temas WordPress