Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🔧 Como atualizar um tema do WordPress sem perder as suas definições: um guia completo

🔧 Como atualizar um tema do WordPress sem perder as suas definições: um guia completo

Passou horas a aperfeiçoar o seu tema: a ajustar fontes, a redesenhar o cabeçalho, a adicionar estilos personalizados para os cartões de produto. O site fica exatamente como queria. Depois aparece a notificação «atualização do tema disponível» e, com um único clique, todas as suas alterações desaparecem.

Parece-lhe familiar? Este problema assombra qualquer pessoa que já tenha editado um tema de WordPress diretamente, sem pensar na proteção contra atualizações. A boa notícia: este problema tem solução completa e não precisa de ser um programador para a aplicar.

Segue-se um guia passo a passo que funciona para qualquer tema WordPress. Desde criar um tema filho até testar atualizações em segurança num site ativo.

💡 Resumo rápido:

  • Saiba porque é que as personalizações do tema desaparecem durante as atualizações e como o WordPress armazena as alterações
  • Crie um tema filho em 5 minutos, de raiz ou através de um plugin
  • Transfira as edições existentes para o tema filho sem perder nada
  • Configure cópias de segurança e teste atualizações sem pôr o seu site em risco

Porque é que as definições do tema se perdem durante as atualizações

O WordPress foi concebido de forma simples: cada tema reside na sua própria pasta dentro de /wp-content/themes/. Quando clica em «atualizar», o WordPress substitui completamente os ficheiros do tema pelas novas versões do repositório. Tudo o que editou no style.css ou functions.php da versão antiga é sobrescrito permanentemente.

Este comportamento não é um defeito, mas uma funcionalidade. Garante que, após a atualização, obtém uma versão limpa e consistente do tema, sem «lixo» acumulado de edições intermédias. O único problema é que o WordPress não sabe quais as alterações que fez, em comparação com o que estava originalmente no tema.

Daí a regra principal da personalização de temas: nunca edite diretamente os ficheiros do tema principal. Em vez disso, todas as alterações devem ser colocadas numa entidade separada chamada tema filho.

Temas filho: como funcionam

Um tema filho é uma camada leve sobre o tema principal. Herda todas as funcionalidades e estilos do original, mas permite-lhe substituir apenas o que precisa de alterar. Quando o tema principal é atualizado, o tema filho permanece intacto e as suas edições mantêm-se.

O princípio é semelhante às camadas no Photoshop: a camada de base é o tema principal e, por cima dela, está uma camada transparente que é o tema filho. Desenha na camada superior e, quando a inferior é substituída, a superior é preservada.

O que pode colocar num tema filho:

  • Regras CSS (fontes, cores, espaçamento, responsividade)
  • Modelos de página e blocos individuais: header.php, footer.php e single.php
  • Alterações funcionais através do functions.php (registo de widgets, tipos de publicação personalizados, shortcodes)
  • Traduções e cadeias de texto

Essencialmente, um tema filho cobre a grande maioria dos tipos de personalização que, de outra forma, o levariam a mexer nos ficheiros do tema principal.

Criar um tema filho: guia passo a passo

O processo não demora mais de cinco minutos e requer apenas acesso aos ficheiros do site via FTP ou através do gestor de ficheiros do seu alojamento.

Passo 1: criar a pasta

No diretório wp-content/themes/, crie uma nova pasta. Dê-lhe o nome do tema principal com o sufixo -child. Por exemplo, para o tema twentytwentyfour, a pasta chamar-se-ia twentytwentyfour-child. Esta convenção de nomenclatura não é um requisito obrigatório, mas é uma prática amplamente aceite que clarifica imediatamente a que tema o filho está ligado.

Passo 2: ligar os estilos com o style.css

Dentro da pasta, crie um ficheiro style.css com este cabeçalho:

1/*
2Theme Name: Twenty Twenty-Four Child
3Template: twentytwentyfour
4*/

Apenas dois campos são minimamente obrigatórios: Theme Name (qualquer nome único) e Template (o nome da pasta do tema principal, exatamente como está no disco, sensível a maiúsculas e minúsculas). Um erro no Template e o tema filho não aparecerá na lista de temas disponíveis no painel de administração.

Passo 3: herdar os estilos do tema principal com o functions.php

Crie um ficheiro functions.php com o seguinte código:

1<?php
2function child_enqueue_parent_styles() {
3 $theme = wp_get_theme();
4 $version = $theme->parent() ? $theme->parent()->get('Version') : '1.0';
5
6 wp_enqueue_style(
7 'parent-style',
8 get_template_directory_uri() . '/style.css',
9 array(),
10 $version
11 );
12}
13add_action('wp_enqueue_scripts', 'child_enqueue_parent_styles');

Este código faz duas coisas: carrega a folha de estilos do tema principal e associa-a ao número da versão. A associação à versão é crítica: quando o tema principal é atualizado, o número da versão no URL do estilo também muda. Os navegadores e as CDNs verão o novo URL e limparão a cache, evitando assim que fique com CSS «partido» porque o navegador continua a usar uma versão antiga em cache.

Passo 4: ativar

Vá ao painel de administração do WordPress → «Aparência» → «Temas». Encontre o tema filho que acabou de criar pelo nome que especificou em Theme Name e clique em «Ativar».

Após a ativação, o WordPress começará a usar o tema filho. O site terá exatamente o mesmo aspeto que tinha com o tema principal, porque o tema filho ainda não está a substituir nada.

Transferir edições existentes para o tema filho

Se já editou o tema principal diretamente, não entre em pânico. A transferência das edições para o tema filho é feita manualmente, mas é uma operação única.

Eis o algoritmo:

  • Faça uma lista de todos os ficheiros do tema principal que alterou. Normalmente são o style.css e o functions.php, menos frequentemente os ficheiros de modelo.
  • Copie apenas as secções de código modificadas para os ficheiros correspondentes do tema filho. Não copie o ficheiro inteiro, pois isso substituiria futuras atualizações do tema principal por código antigo. Leve apenas o que adicionou ou alterou.
  • Após transferir todas as edições, restaure os ficheiros originais do tema principal a partir do repositório (basta reinstalar o tema ou descarregar uma cópia nova).

Se acumulou muitas alterações e não tem a certeza do que modificou exatamente, aqui fica uma dica: instale o plugin One Click Child Theme (cria um tema filho com um clique) e depois compare manualmente os ficheiros do tema principal com o original do repositório, usando uma ferramenta de diff ou um serviço de comparação online. Desta forma, verá exatamente que linhas adicionou.

Abordagens alternativas: frameworks e plugins

Um tema filho é o método principal e mais flexível, mas existem outras ferramentas para uma personalização segura.

Frameworks de temas

Se ainda está a escolher um tema e planeia modificações sérias, considere as frameworks. O exemplo mais conhecido é o Genesis Framework da StudioPress. A ideia é que a framework sirva como um tema principal «eterno» e que trabalhe num tema filho desde o primeiro dia. O Genesis não é atualizado de forma caótica; as suas atualizações são concebidas para não quebrar os temas filho. O custo é de $60 por ano, mas para quem ganha dinheiro com websites, é um investimento justificado.

Outra opção é a framework Total, que vem com um campo de CSS Personalizado integrado no painel de administração. Para pequenos ajustes de estilo, isto pode ser suficiente sem necessidade de criar um tema filho.

Plugins

Grande plano de código num monitor, desenvolvimento web

Se preferir não mexer nos ficheiros do tema, algumas tarefas podem ser delegadas a plugins:

  • O WP Template Overrides permite-lhe substituir modelos seletivamente sem criar um tema filho. É útil quando precisa de corrigir um modelo específico e criar um tema filho parece um exagero.
  • O plugin One Click Child Theme cria um tema filho diretamente do painel de administração, sem necessidade de FTP. Perfeito para a sua primeira experiência com temas filho: clique num botão e a estrutura fica pronta.

É importante compreender as limitações: os plugins cobrem cenários restritos. Para um trabalho de personalização sistemático, um tema filho continua a ser mais fiável, uma vez que não depende de atualizações de plugins de terceiros e funciona mesmo quando muda de plugins ativos.

Cópias de segurança: o seguro antes da atualização

Independentemente do método que utilizar, faça uma cópia de segurança do seu site antes de qualquer atualização do tema. Demora alguns minutos, mas poupa-lhe os nervos se algo não correr como planeado.

Três níveis de cópia de segurança, do simples ao robusto:

  • Cópia de segurança manual via FTP. Descarregue a pasta do tema e exporte a base de dados através do phpMyAdmin ou WP-CLI (wp db export). É gratuito, mas requer disciplina; é fácil esquecer-se antes de atualizar.
  • Cópia de segurança automática com plugins. As opções gratuitas do diretório do WordPress tratam da cópia diária de ficheiros e da base de dados. Entre as soluções premium, destacam-se o Jetpack VaultPress Backup (cópias de segurança em tempo real na cloud) e o Solid Backups (anteriormente BackupBuddy, restauro com um clique).
  • Cópia de segurança ao nível do alojamento. A maioria dos alojamentos WordPress geridos faz cópias diárias automaticamente. Verifique com o seu fornecedor a rapidez com que pode restaurar a partir de uma dessas cópias.

A regra é simples: quanto mais próxima a atualização, mais recente deve ser a sua cópia de segurança. Faça uma cópia de segurança → atualize o tema → verifique o site. Se falhar, reverte num minuto.

Testar uma atualização em segurança

O WordPress trata versões diferentes do mesmo tema como dois temas separados. Se as pastas mytheme (v1) e mytheme-new (v1.1) existirem ambas em /wp-content/themes/, o painel de administração mostra-as como dois itens distintos.

Pode usar este comportamento para testes seguros:

  • Copie o tema atual para uma pasta com um nome diferente (por exemplo, mytheme-old).
  • Instale a nova versão do tema da forma habitual.
  • Ative a nova versão e verifique o site.
  • Se algo se partir, volte para a versão antiga com um clique.

Isto não substitui um tema filho, mas dá-lhe margem de manobra enquanto transfere as definições da versão antiga para a nova. É especialmente útil quando o programador do tema alterou radicalmente a estrutura dos modelos numa atualização maior.

O vídeo acima fornece uma demonstração visual da criação de um tema filho, do início à ativação. Se restarem dúvidas após as instruções em texto, este vídeo de 7 minutos esclarecerá tudo.

⁉️🤔 Perguntas frequentes

Tenho de criar um tema filho se apenas editei CSS através de «Personalizar» → «CSS adicional»?

Não. Os estilos adicionais através do personalizador são armazenados na base de dados do WordPress, não nos ficheiros do tema. Não se perderão durante as atualizações. Mas se adicionou CSS através do ficheiro style.css do tema, é necessário um tema filho.

Posso criar um tema filho se o site já estiver ativo e tiver plugins instalados?

Sim, criar um tema filho não afeta os plugins. O processo é completamente independente: cria uma pasta e dois ficheiros, ativa o tema filho e o site continua a funcionar como se nada tivesse acontecido. Uma ressalva: se usou funcionalidades do personalizador (por exemplo, definiu um logótipo ou favicon), terá de as reconfigurar após ativar o tema filho, porque estas definições estão associadas ao tema ativo específico.

O que devo fazer se o programador abandonou o tema principal?

O tema filho continuará a funcionar, mas a segurança e a compatibilidade com novas versões do WordPress tornam-se questionáveis. Se o tema principal não for atualizado há mais de um ano, deve considerar migrar para um tema diferente. A curto prazo, continue a usar o tema filho como habitualmente, mas planeie uma transição.

Porque é que o Genesis Framework é melhor do que um tema principal normal?

O Genesis foi criado especificamente para ser um tema principal. Não altera o design drasticamente entre versões, fornece uma API limpa de hooks e filtros para temas filho e é atualizado com a compatibilidade retroativa em mente. Um tema normal pode redesenhar a sua estrutura de modelos a qualquer momento e o seu tema filho pode deixar de funcionar. Com o Genesis, esse risco é mínimo.

Posso atualizar o tema automaticamente se tiver um tema filho ativo?

Sim, é exatamente para isso que serve um tema filho. O tema principal é atualizado automaticamente (ou manualmente) e o tema filho permanece completamente intacto. Todas as suas edições ficam no lugar.

Atualizar ou não atualizar: o que fazer agora mesmo

Se retirar apenas uma coisa de todo este artigo, que seja esta regra simples: não edite os ficheiros do tema diretamente; crie um tema filho. Demora cinco minutos e a poupança mede-se em horas de recuperação após cada atualização.

Para principiantes, o caminho é este: instale o One Click Child Theme → clique num botão → ative o tema filho → e só então comece a personalizar. Para quem já fez alterações ao tema principal, transfira-as para o tema filho seguindo as instruções acima, restaure os originais e atualize com tranquilidade.

Tem um esquema diferente para proteger as definições durante as atualizações do tema? Partilhe nos comentários e expandiremos o guia.