WordPress child theme: o que é e como criar
Já lhe aconteceu personalizar um tema ao pormenor, e depois, ao actualizar o tema original, perder tudo o que mudou? É uma sensação horrível. A boa notícia é que isso tem solução: uma wordpress child theme.
Ao longo deste artigo, vou explicar-lhe o que é, por que vale a pena usar uma, e como criar a sua, passo a passo, sem pressas e sem complicações.
O que é uma wordpress child theme
Imagine que compra um caderno bonito. Escreve nele, desenha, personaliza. Depois, o dono da marca diz que vai substituir o caderno por um novo modelo. Perde tudo outra vez.
Pois bem, uma wordpress child theme evita exatamente esse problema.
Na prática, funciona assim: existe um tema principal (o seu Tema). Depois, cria-se um tema filho por cima dele. O tema filho herda todas as características do pai. Mas guarda as suas alterações num sítio à parte.
Traduzindo: instala o tema principal. Instala o tema filho. Ativa o tema filho. O aspeto do site continua igual.
Quando quer mudar alguma coisa – uma cor, uma fonte, a posição de um elemento só mexe apenas no tema filho. O tema principal fica intacto, como se estivesse num museu, sem ninguém lhe tocar.
Por isso, muitos programadores chamam-lhe “camada de segurança”. É exatamente isso: uma proteção entre o que o tema original oferece e aquilo que você decide personalizar.
Além disso, uma wordpress child theme é leve. Não precisa de copiar ficheiros inteiros do tema principal. Apenas aquilo que vai alterar. Mais simples, mais limpo e muito mais seguro.
Como criar uma wordpress child theme manualmente (via FTP)
Vamos pôr as mãos na massa. Não se assuste. É mais simples do que parece.
Para este método, precisa de um programa de FTP. Eu recomendo o FileZilla, que é gratuito. Também precisa dos dados de acesso ao seu servidor (endereço, nome de utilizador e palavra-passe). O seu alojamento web fornece essa informação.
Pronto? Então vamos começar a criar a sua wordpress child theme.
Passo 1: Ligar ao servidor por FTP
Abra o FileZilla. Introduza os dados do seu servidor. Clique em “Ligação rápida”.
Do lado esquerdo, vê os ficheiros do seu computador. Do lado direito, os ficheiros do servidor. Navegue até à pasta wp-content/themes/. É ali que vamos trabalhar.
Passo 2: Criar a pasta do tema filho
Agora, dentro da pasta themes, crie uma nova pasta. Dê um nome como tema-filho. Use apenas letras minúsculas e hífenes. Evite espaços e caracteres especiais.
Porquê este cuidado? O WordPress é sensível a nomes. Um espaço ou uma letra maiúscula a mais pode causar erros.
Passo 3: Criar o ficheiro style.css
Entre na pasta que acabou de criar. Crie um ficheiro chamado style.css. Pode fazer isto diretamente no FileZilla: clique com o botão direito, escolha “Criar novo ficheiro” e dê o nome.
Abra esse ficheiro com um editor de texto (como o Bloco de Notas). Escreva exatamente o seguinte:
/*
Theme Name: Tema Filho
Template: nome-do-tema-principal
*/Code language: CSS (css)Atenção à linha Template. Ali tem de colocar o nome da pasta do tema principal. Exemplo: se o seu tema principal é o Twenty Twenty-Five, a pasta chama-se twentytwentyfive. Escreva isso mesmo.
Guarde o ficheiro. No FileZilla, faça upload dele para a pasta do tema filho.
Passo 4: Criar o ficheiro functions.php
Este passo é essencial. Sem ele, o seu site pode ficar sem os estilos do tema principal.
Crie outro ficheiro, agora chamado functions.php. Escreva dentro dele:
<?php
function tema_filho_estilos() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), array('parent-style'));
}
add_action('wp_enqueue_scripts', 'tema_filho_estilos');Code language: PHP (php)Não se preocupe em perceber cada linha. Basta saber que este código diz ao WordPress para carregar primeiro o CSS do tema principal e depois o CSS do tema filho. A ordem é importante.
Guarde e faça upload deste ficheiro também.
Passo 5: Ativar a wordpress child theme
Agora vá ao painel de administração do WordPress. Entre em Aspeto > Temas. Vai ver o tema filho ali, com o nome que escolheu.
Passe o rato por cima. Clique em “Ativar”. O seu site continua igual, mas agora está a usar a wordpress child theme que acabou de criar.
Passo 6: Testar se está tudo bem
Abra o seu site numa nova janela do navegador. Está tudo no lugar? As cores, as fontes, a estrutura? Ótimo.
Para testar se o tema filho está mesmo ativo, pode fazer uma pequena experiência. Abra o style.css do tema filho e acrescente uma linha no final:
body {
background-color: #f0f0f0;
}Code language: CSS (css)Atualize o site. Viu um cinzento claro de fundo? Funcionou. Pode remover essa linha agora. Já sabe que a wordpress child theme está a funcionar como deve ser.
O ficheiro functions.php e como carregar os estilos corretamente
Muita gente tropeça aqui. Mas vamos resolver isso de uma vez.
O functions.php do tema filho não substitui o do tema principal. Ao contrário do que muitos pensam, os dois trabalham em conjunto. O WordPress carrega primeiro o functions.php do tema principal. Depois carrega o do tema filho.
Porque é que isto importa? Por causa da ordem dos estilos.
Se carregar o CSS do tema filho antes do CSS do tema principal, as suas alterações podem não aparecer. O tema principal empurra os seus estilos para trás. E fica frustrado, sem perceber porquê.
A solução está neste código que já mostrei:
<?php
function tema_filho_estilos() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), array('parent-style'));
}
add_action('wp_enqueue_scripts', 'tema_filho_estilos');Code language: PHP (php)Vou explicar cada linha de forma simples:
wp_enqueue_style('parent-style'...)– carrega o CSS do tema principal.wp_enqueue_style('child-style'...)– carrega o CSS do tema filho.array('parent-style')– diz ao WordPress: “Espera pelo CSS do pai primeiro, depois carrega o meu.”
Assim, a sua wordpress child theme respeita a hierarquia correta. Os estilos que escrever no style.css do tema filho vão prevalecer sobre os do tema principal.
Pode também usar o functions.php para adicionar outras funcionalidades. Por exemplo, registar menus, adicionar suporte a imagens destacadas ou carregar scripts de JavaScript. Mas o essencial, para começar, é garantir que os estilos funcionam. O resto vem depois.
Como alterar templates (single.php, header.php, etc.)
Até agora, mexemos apenas no CSS. Mas e se precisar de mudar a estrutura de uma página? Por exemplo, adicionar um bloco novo no cabeçalho ou remover a data dos artigos?
Para isso, precisa de alterar os ficheiros de template. E uma wordpress child theme torna esta tarefa muito simples.
O princípio da substituição
O WordPress funciona com uma hierarquia clara. Quando procura um template, ele olha primeiro para o tema filho. Só depois, se não encontrar, vai buscar ao tema principal.
Isto significa o seguinte: se copiar um ficheiro do tema principal para o tema filho, o WordPress vai usar a versão do tema filho. Sempre. O ficheiro original fica intacto, quietinho no seu canto.
Passo a passo para alterar um template
Vamos usar o single.php como exemplo. Este ficheiro controla a aparência dos artigos individuais.
1. Localize o ficheiro no tema principal
Ligue-se ao servidor por FTP. Navegue até à pasta do tema principal (por exemplo, wp-content/themes/meutema/). Procure pelo single.php.
2. Copie o ficheiro
Transfira uma cópia para o seu computador. Use o FileZilla ou outro programa de FTP.
3. Crie a mesma estrutura no tema filho
Se o single.php está na raiz do tema principal, cole-o na raiz do tema filho. Se estiver dentro de uma pasta (como /templates/), recrie essa mesma pasta no tema filho. A estrutura tem de ser idêntica.
4. Altere à vontade
Abra o ficheiro com um editor de código (como o Visual Studio Code ou o Bloco de Notas). Acrescente, remova ou modifique o HTML e o PHP que precisar. Guarde as alterações.
5. Faça o upload
Envie o ficheiro modificado para a mesma pasta dentro do tema filho. Atualize o seu site. As mudanças aparecem imediatamente.
Que ficheiros pode alterar?
A lista é grande. Os mais comuns são:
header.php– cabeçalho do sitefooter.php– rodapésidebar.php– barra lateralsingle.php– página de artigo individualpage.php– páginas estáticasarchive.php– arquivos de categorias e etiquetassearch.php– página de resultados de pesquisa
Um conselho importante
Nem todos os temas usam os mesmos nomes de ficheiros. Alguns temas modernos organizam os templates dentro de pastas como /partials/ ou /template-parts/. Outros usam nomes diferentes, como content-single.php.
Por isso, explore primeiro a estrutura do tema principal. Veja onde estão os ficheiros. Depois reproduza essa estrutura no tema filho. Funciona sempre.
Com uma wordpress child theme bem montada, pode reestruturar o site inteiro sem nunca tocar no tema Como alterar templates (single.php, header.php, etc.)
Até agora, mexemos apenas no CSS. Mas e se precisar de mudar a estrutura de uma página? Por exemplo, adicionar um bloco novo no cabeçalho ou remover a data dos artigos?
Para isso, precisa de alterar os ficheiros de template. E uma wordpress child theme torna esta tarefa muito simples.
O princípio da substituição
O WordPress funciona com uma hierarquia clara. Quando procura um template, ele olha primeiro para o tema filho. Só depois, se não encontrar, vai buscar ao tema principal.
Isto significa o seguinte: se copiar um ficheiro do tema principal para o tema filho, o WordPress vai usar a versão do tema filho. Sempre. O ficheiro original fica intacto, quietinho no seu canto.
Passo a passo para alterar um template
Vamos usar o single.php como exemplo. Este ficheiro controla a aparência dos artigos individuais.
1. Localize o ficheiro no tema principal
Ligue-se ao servidor por FTP. Navegue até à pasta do tema principal (por exemplo, wp-content/themes/meutema/). Procure pelo single.php.
2. Copie o ficheiro
Transfira uma cópia para o seu computador. Use o FileZilla ou outro programa de FTP.
3. Crie a mesma estrutura no tema filho
Se o single.php está na raiz do tema principal, cole-o na raiz do tema filho. Se estiver dentro de uma pasta (como /templates/), recrie essa mesma pasta no tema filho. A estrutura tem de ser idêntica.
4. Altere à vontade
Abra o ficheiro com um editor de código (como o Visual Studio Code ou o Bloco de Notas). Acrescente, remova ou modifique o HTML e o PHP que precisar. Guarde as alterações.
5. Faça o upload
Envie o ficheiro modificado para a mesma pasta dentro do tema filho. Atualize o seu site. As mudanças aparecem imediatamente.
Que ficheiros pode alterar?
A lista é grande. Os mais comuns são:
header.php– cabeçalho do sitefooter.php– rodapésidebar.php– barra lateralsingle.php– página de artigo individualpage.php– páginas estáticasarchive.php– arquivos de categorias e etiquetassearch.php– página de resultados de pesquisa
Um conselho importante
Nem todos os temas usam os mesmos nomes de ficheiros. Alguns temas modernos organizam os templates dentro de pastas como /partials/ ou /template-parts/. Outros usam nomes diferentes, como content-single.php.
Por isso, explore primeiro a estrutura do tema principal. Veja onde estão os ficheiros. Depois reproduza essa estrutura no tema filho. Funciona sempre.
Com uma wordpress child theme bem montada, pode reestruturar o site inteiro sem nunca tocar no tema original. E quando houver uma atualização, o seu trabalho continua seguro.
E se a theme principal tiver uma atualização?
Esta é a pergunta que mais assusta quem está a começar. E é também a maior razão para usar uma wordpress child theme.
Vamos responder de forma direta: sim, pode atualizar. Sem medo. Sem sustos.
O que acontece durante a atualização
Quando clica em “Atualizar” no painel do WordPress, o sistema substitui os ficheiros do tema principal. Todos eles. O style.css, o functions.php, os templates, as imagens – tudo é renovado.
Mas o tema filho? Fica exatamente como estava. Intacto. O WordPress nem lhe toca.
Porquê? Porque são pastas diferentes. O tema principal mora numa pasta. O tema filho mora noutra. A atualização só mexe na primeira.
O que acontece ao seu site depois da atualização
O seu site continua a usar o tema filho. As suas alterações no CSS continuam lá. Os templates que copiou e modificou também. Nada se perde.
E recebe ainda as novidades do tema principal: correções de segurança, novas funcionalidades, melhorias de desempenho. O melhor dos dois mundos.
O único cuidado que deve ter
Vou ser honesto consigo. Existe uma situação rara onde pode precisar de ajustar alguma coisa.
Imagine que o autor do tema principal decide mudar o nome de uma função importante. Ou altera a estrutura de um ficheiro que você copiou para o tema filho. Nesse caso, o seu tema filho pode deixar de funcionar como esperado.
Mas calma: isto é pouco frequente. E quando acontece, o autor avisa nas notas de lançamento. Basta ler antes de atualizar.
Como proceder de forma segura
Siga estes passos e dormirá descansado:
- Leia as notas da atualização – veja se algo mudou nos templates que você alterou.
- Teste num ambiente de desenvolvimento – se tiver um site de testes, use-o.
- Faça uma cópia de segurança – antes de qualquer atualização, guarde tudo.
- Atualize o tema principal – sem receios, já que o tema filho está protegido.
- Verifique o seu site – abra algumas páginas e confirme que está tudo no lugar.
Uma wordpress child theme não é à prova de bala. Mas é, de longe, a forma mais segura de personalizar o WordPress sem perder cabelo quando há atualizações.
Erros comuns ao criar uma child theme (FAQ)
Vamos responder às perguntas mais frequentes. Assim evita as armadilhas mais comuns.
Provavelmente esqueceu-se da linha Template: no style.css.
Sem ela, o WordPress não sabe qual é o tema principal. O tema filho fica invisível ou aparece como um tema avulso.
Solução: Abra o style.css do tema filho. Confirme que tem esta estrutura:
/*
Theme Name: Tema Filho
Template: nome-do-tema-principal
*/
Falta o functions.php ou o código dele está errado.
Lembre-se: o tema filho não carrega os estilos do tema principal automaticamente. Precisa de o instruir.
Solução: Crie um functions.php no tema filho com este conteúdo:
<?php
function tema_filho_estilos() {
wp_enqueue_style(‘parent-style’, get_template_directory_uri() . ‘/style.css’);
wp_enqueue_style(‘child-style’, get_stylesheet_uri(), array(‘parent-style’));
}
add_action(‘wp_enqueue_scripts’, ‘tema_filho_estilos’);
Dois problemas possíveis.
Primeiro: a especificidade. O tema principal pode usar seletores muito específicos. O seu CSS precisa de ser igual ou mais específico para prevalecer.
Segundo: a ordem. O functions.php tem de carregar o CSS do pai antes do filho. Use o código que mostrei acima.
Não faça isso. É um erro grave.
Se copiar o functions.php completo, o WordPress vai tentar carregar as mesmas funções duas vezes. O resultado? Um erro fatal no site.
Solução: No tema filho, escreva apenas as funções novas ou as que quer modificar. Deixe o resto com o tema principal.
Melhor não. Use apenas letras minúsculas e hífenes.
Exemplo: meu-tema-filho funciona. Meu Tema Filho pode causar dores de cabeça.
A estrutura de pastas não está igual à do tema principal.
O WordPress procura o template no mesmo caminho. Se no tema principal ele está em /templates/single.php, no tema filho tem de estar em /templates/single.php.
Solução: Verifique a localização exata do ficheiro no tema principal. Recrie essa mesma hierarquia dentro do tema filho.
Não, nunca apague o tema principal.
A wordpress child theme precisa do tema principal para funcionar. Sem ele, o seu site fica sem base. O tema principal é obrigatório. O filho vive dele.
Considerações finais
Criar uma wordpress child theme parece complicado ao início. Mas depois de dar os primeiros passos, vê que é mais simples do que imaginava.
A verdade é esta: vale sempre a pena. Mesmo para uma alteração pequena. Mesmo para um único ajuste de CSS.
Porquê? Porque nunca sabe quando o autor do tema vai lançar uma atualização. E quando lançar, vai querer instalar sem hesitar. Com uma child theme, pode fazê-lo.
Comece devagar. Use um site de testes se possível. Faça uma alteração de cada vez. E vá ganhando confiança.
Dentro de pouco tempo, criar uma wordpress child theme vai tornar-se automático. E vai agradecer a si mesmo(a) cada vez que apertar o botão “Atualizar”.
Vamos começar hoje?
Já tem tudo o que precisa. Os passos estão aqui. Os códigos também.
Agora é consigo. Abra o seu FTP. Crie a pasta. Escreva o style.css e o functions.php. Ative o tema filho. E comece a personalizar sem medo.
Se tiver dúvidas pelo caminho, volte a este artigo. Leia devagar. Experimente outra vez. Funciona.
Fontes externas (links úteis)
Para aprofundar o seu conhecimento, consulte estas referências oficiais. São todas em inglês, mas valem a pena.
- Documentação oficial do WordPress sobre Child Themes
https://developer.wordpress.org/themes/advanced-topics/child-themes/ - Hierarquia de templates do WordPress
https://developer.wordpress.org/files/2014/10/template-hierarchy.png - Função wp_enqueue_style – como carregar CSS corretamente
https://developer.wordpress.org/reference/functions/wp_enqueue_style/ - Guia do FileZilla (FTP) para iniciantes
https://wiki.filezilla-project.org/Documentation - WordPress Codex – Functions.php (informação avançada)
https://codex.wordpress.org/Functions_File_Explained
Estes recursos ajudam a tirar dúvidas mais específicas. Guarde-os nos favoritos. Vão dar jeito.