16 min de leitura · Guia técnico
Migrar tema filho no WordPress significa transferir a pasta do tema personalizado — com todos os seus arquivos CSS, PHP e assets — de um servidor para outro sem perder nenhuma customização visual. Para migrar um tema filho sem plugin, siga estes passos:
- Faça backup completo da pasta do tema filho e do tema pai via FTP ou gerenciador de arquivos do cPanel.
- Exporte o banco de dados MySQL com
mysqldumppara preservar as configurações do Customizer. - Copie ambas as pastas para
wp-content/themes/no servidor de destino. - Importe o dump SQL no banco de dados do novo servidor.
- Reative o tema filho em Aparência > Temas no painel do WordPress.
- Verifique o carregamento do
style.css do tema filho inspecionando o código-fonte do front-end.
Pré-requisitos para migrar tema filho no WordPress
- Acesso FTP ou SFTP ao servidor de origem e ao servidor de destino (use o FileZilla como cliente FTP se precisar de um guia de configuração).
- Acesso ao cPanel ou SSH com permissão de leitura e escrita em
wp-content/themes/. - Credenciais do banco de dados MySQL de origem e destino (host, usuário, senha, nome do banco).
- WordPress 6.x instalado no servidor de destino com o mesmo usuário administrador ou com permissão para reativar temas.
- WP-CLI instalado opcionalmente para verificação via linha de comando.
- PHP 8.1 ou superior no servidor de destino para compatibilidade com temas modernos.
- Espaço em disco suficiente para acomodar os arquivos do tema pai e do tema filho.
Como copiar os arquivos do tema filho via FTP e cPanel
A transferência direta dos arquivos é o núcleo da migração de tema filho no WordPress. Diferente de plugins de migração que empacotam tudo automaticamente, o método manual garante controle total sobre quais arquivos são movidos e evita conflitos de versão.
Conecte-se ao servidor de origem com o FileZilla ou com o gerenciador de arquivos do cPanel. Navegue até o diretório:
/public_html/wp-content/themes/
Você verá uma estrutura semelhante a esta:
themes/
├── twentytwentyfour/ ← tema pai
├── twentytwentyfour-child/ ← tema filho
└── index.php
Atenção: Copie ambas as pastas — o tema pai e o tema filho. Ignorar o tema pai causará erro de dependência no WordPress ao tentar ativar o tema filho no destino.
Para fazer o download via FTP com FileZilla, clique com o botão direito em cada pasta e selecione Baixar. Para ambientes com SSH, use scp para transferência direta entre servidores:
scp -r usuario@servidor-origem:/public_html/wp-content/themes/twentytwentyfour \
usuario@servidor-destino:/public_html/wp-content/themes/
scp -r usuario@servidor-origem:/public_html/wp-content/themes/twentytwentyfour-child \
usuario@servidor-destino:/public_html/wp-content/themes/
Output esperado após o comando scp:
style.css 100% 4321 1.2MB/s 00:00
functions.php 100% 2198 0.9MB/s 00:00
screenshot.png 100% 87KB 2.1MB/s 00:00
Se preferir compactar antes de transferir, use tar no servidor de origem via SSH:
cd /public_html/wp-content/themes/
tar -czf temas-backup.tar.gz twentytwentyfour twentytwentyfour-child
Depois, transfira o arquivo temas-backup.tar.gz e extraia no destino:
tar -xzf temas-backup.tar.gz -C /public_html/wp-content/themes/
Exportar e importar o banco de dados para preservar estilos do Customizer
As customizações visuais feitas no Customizer do WordPress — cores, fontes, layout de cabeçalho — não ficam nos arquivos do tema. Elas são armazenadas na tabela wp_options do banco de dados, nas chaves theme_mods_nome-do-tema. Sem migrar o banco, você perde todas essas configurações mesmo que os arquivos CSS estejam intactos.
Para exportar o banco de dados no servidor de origem via linha de comando SSH:
mysqldump -u usuario_db -p nome_do_banco > backup-wordpress.sql
Se preferir usar o cPanel, acesse phpMyAdmin, selecione o banco de dados, clique em Exportar e escolha o formato SQL com a opção Rápido.
Para verificar se as configurações do tema filho estão no dump antes de importar:
grep "theme_mods" backup-wordpress.sql
Output esperado:
INSERT INTO `wp_options` VALUES ('theme_mods_twentytwentyfour-child','a:3:{s:18:\"custom_css_post_id\";i:42;...}');
Importe o dump no banco de dados do servidor de destino:
mysql -u usuario_db_destino -p nome_do_banco_destino < backup-wordpress.sql
Atenção: Se o servidor de destino já tiver um WordPress instalado com dados, a importação irá sobrescrever as tabelas existentes. Faça backup do banco de destino antes de executar este comando.
Caso queira migrar apenas as configurações do tema sem sobrescrever o banco inteiro, exporte somente as linhas relevantes:
mysqldump -u usuario_db -p nome_do_banco wp_options \
--where="option_name LIKE 'theme_mods%'" > theme-mods-only.sql
Depois importe esse arquivo parcial no destino:
mysql -u usuario_db_destino -p nome_do_banco_destino < theme-mods-only.sql
Para conexões remotas ao MySQL via cPanel, consulte o guia de conexão remota ao MySQL no cPanel para liberar o acesso externo antes de executar os comandos acima.
Verificar a estrutura do tema filho após a migração
Após copiar os arquivos e importar o banco, é essencial confirmar que o tema filho está estruturalmente correto no servidor de destino. Um tema filho mal configurado pode carregar sem erros aparentes mas ignorar os estilos personalizados.
Verifique se o arquivo style.css do tema filho contém o cabeçalho obrigatório com a referência ao tema pai:
cat /public_html/wp-content/themes/twentytwentyfour-child/style.css
Output esperado (primeiras linhas):
/*
Theme Name: Twenty Twenty-Four Child
Theme URI: https://seusite.com.br
Description: Tema filho do Twenty Twenty-Four
Author: Seu Nome
Template: twentytwentyfour
Version: 1.0.0
*/
O campo Template: deve corresponder exatamente ao nome da pasta do tema pai. Se houver divergência — por exemplo, Template: twentytwentyfour mas a pasta do pai se chama TwentyTwentyFour com letras maiúsculas — o WordPress não reconhecerá a dependência.
Verifique também o arquivo functions.php do tema filho para confirmar que o enqueue do stylesheet está correto:
cat /public_html/wp-content/themes/twentytwentyfour-child/functions.php
Output esperado:
<?php
add_action( 'wp_enqueue_scripts', 'tema_filho_enqueue_styles' );
function tema_filho_enqueue_styles() {
wp_enqueue_style(
'parent-style',
get_template_directory_uri() . '/style.css'
);
wp_enqueue_style(
'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'parent-style' )
);
}
Se o functions.php não enfileirar o stylesheet do tema pai, os estilos do tema filho serão carregados sem a base do tema pai, causando quebra visual.
Para verificar via WP-CLI diretamente no servidor de destino:
wp theme list --path=/public_html
Output esperado:
+---------------------------+----------+--------+---------+
| name | status | update | version |
+---------------------------+----------+--------+---------+
| twentytwentyfour | inactive | none | 1.2 |
| twentytwentyfour-child | active | none | 1.0.0 |
+---------------------------+----------+--------+---------+
O tema filho deve aparecer com status active e o tema pai como inactive (presente mas não ativo diretamente).
Reativar o tema filho e ajustar permissões de arquivo
Com os arquivos no lugar e o banco de dados importado, acesse o painel do WordPress no servidor de destino em Aparência > Temas. O tema filho deve aparecer listado. Clique em Ativar.
Se o tema não aparecer na lista, o problema geralmente é de permissão de arquivo. Verifique e corrija as permissões das pastas de tema:
find /public_html/wp-content/themes/twentytwentyfour-child -type d -exec chmod 755 {} \;
find /public_html/wp-content/themes/twentytwentyfour-child -type f -exec chmod 644 {} \;
Permissões corretas para temas WordPress:
- Pastas:
755(leitura e execução para todos, escrita apenas para o dono) - Arquivos:
644(leitura para todos, escrita apenas para o dono) - Nunca use
777em arquivos de tema — isso representa risco de segurança grave.
Após ativar o tema, acesse o front-end do site e inspecione o código-fonte com Ctrl+U no navegador. Procure pela tag <link> que referencia o style.css do tema filho:
<link rel="stylesheet" href="https://seusite.com.br/wp-content/themes/twentytwentyfour-child/style.css?ver=1.0.0" />
Se essa linha aparecer no código-fonte, o tema filho está sendo carregado corretamente com seus estilos personalizados.
Caso o site use HTTPS e você precise garantir que os assets do tema sejam carregados com o protocolo correto, consulte o guia sobre como redirecionar HTTP para HTTPS para evitar avisos de conteúdo misto que podem bloquear o carregamento do CSS.
Problemas comuns e como resolver
Sintoma: tema filho não aparece em Aparência > Temas após a migração
Causa: A pasta do tema filho não foi copiada corretamente para wp-content/themes/, ou o arquivo style.css está ausente ou corrompido. O WordPress só reconhece um tema se encontrar o cabeçalho válido no style.css.
Solução: Verifique se a pasta existe no servidor de destino com ls -la /public_html/wp-content/themes/. Confirme que o arquivo style.css está presente e contém o campo Theme Name: no cabeçalho. Se o arquivo estiver ausente, faça o upload novamente via FTP.
Sintoma: WordPress exibe erro "O tema pai está ausente" ao ativar o tema filho
Causa: A pasta do tema pai não foi copiada para o servidor de destino, ou o nome da pasta do tema pai não corresponde ao valor do campo Template: no style.css do tema filho.
Solução: Copie a pasta do tema pai para wp-content/themes/ no servidor de destino. Verifique se o nome da pasta é exatamente igual ao valor de Template: — o WordPress diferencia maiúsculas de minúsculas nesse campo.
Sintoma: estilos do tema filho não são aplicados mesmo após ativação
Causa: O arquivo functions.php do tema filho não está enfileirando o stylesheet corretamente, ou há cache de página/browser impedindo o carregamento do CSS atualizado.
Solução: Revise o functions.php e confirme que a função wp_enqueue_style está registrando o child-style com dependência no parent-style. Limpe o cache do WordPress (se usar plugin de cache) e force o recarregamento do navegador com Ctrl+Shift+R.
Sintoma: customizações do Customizer desapareceram após a migração
Causa: O banco de dados não foi migrado junto com os arquivos do tema, ou foi importado em um banco diferente do que o WordPress está usando no servidor de destino.
Solução: Verifique o arquivo wp-config.php do WordPress no destino para confirmar o nome do banco de dados (DB_NAME), o usuário (DB_USER) e o host (DB_HOST). Reimporte o dump SQL no banco correto. Confirme com grep "theme_mods" backup-wordpress.sql que as configurações estavam no dump.
Sintoma: imagens do tema filho aparecem quebradas após a migração
Causa: As URLs das imagens no banco de dados ainda apontam para o domínio ou caminho do servidor de origem.
Solução: Use WP-CLI para substituir as URLs antigas pelas novas no banco de dados:
wp search-replace "https://site-antigo.com.br" "https://site-novo.com.br" \
--path=/public_html --all-tables
Output esperado:
Success: Made 47 replacements.
Perguntas frequentes sobre migração de tema filho no WordPress
É possível migrar um tema filho no WordPress sem usar plugin?
Sim. Basta copiar a pasta do tema filho via FTP ou gerenciador de arquivos do cPanel, importar o banco de dados com as customizações e reativar o tema no painel do WordPress. Nenhum plugin é necessário para esse processo quando feito diretamente nos arquivos do servidor. O método manual oferece controle total e evita dependências de plugins que podem conflitar com o ambiente de destino.
O que acontece com os estilos do tema filho ao migrar para outro servidor?
Os estilos definidos no arquivo style.css do tema filho são preservados desde que a pasta completa do tema seja copiada corretamente. Customizações feitas via Customizer do WordPress ficam salvas no banco de dados e precisam ser migradas junto com o dump SQL para não serem perdidas. Sem a migração do banco, os arquivos CSS chegam intactos, mas as configurações visuais do Customizer são perdidas.
Preciso migrar o tema pai junto com o tema filho?
Sim, o tema filho depende do tema pai para funcionar. Se o tema pai não estiver presente no servidor de destino, o WordPress exibirá um erro de dependência e o tema filho não será ativado. Copie ambas as pastas para o diretório wp-content/themes/ do novo servidor. O nome da pasta do tema pai deve corresponder exatamente ao valor do campo Template: no style.css do tema filho.
Como verificar se o tema filho foi migrado corretamente?
Acesse o painel do WordPress em Aparência > Temas e confirme que o tema filho aparece listado e ativo. Em seguida, abra o front-end do site e inspecione o código-fonte para verificar se o arquivo style.css do tema filho está sendo carregado. Você também pode executar wp theme list via WP-CLI para confirmar o status de cada tema instalado no servidor.
As customizações feitas no Customizer do WordPress são migradas automaticamente?
Não automaticamente. As configurações do Customizer ficam armazenadas na tabela wp_options do banco de dados, nas chaves theme_mods_nome-do-tema. Para migrá-las, é necessário exportar e importar o banco de dados completo ou usar a ferramenta de exportação nativa do WordPress em Ferramentas > Exportar e depois importar no destino. A exportação nativa, porém, não cobre todas as configurações do Customizer — o dump SQL completo é o método mais confiável.
Conclusão
- Copie sempre as duas pastas: tema pai e tema filho devem estar presentes em
wp-content/themes/no servidor de destino — a ausência do tema pai impede a ativação do filho. - Migre o banco de dados: os estilos do Customizer vivem na tabela
wp_options; sem o dump SQL, as customizações visuais são perdidas mesmo com os arquivos CSS intactos. - Valide após a migração: use
wp theme listvia WP-CLI e inspecione o código-fonte do front-end para confirmar que ostyle.cssdo tema filho está sendo carregado corretamente antes de considerar a migração concluída.
Leia também
- Migrar site do cPanel para Plesk sem perder dados
- Solucionar erro 500 no WordPress: diagnóstico rápido e correção definitiva
- Guia para resolver erro de memória no WordPress: diagnóstico e ampliação
Precisa de ajuda com hospedagem WordPress?
Migrar temas e bancos de dados manualmente exige atenção a cada detalhe — um arquivo faltando ou uma permissão errada pode derrubar o visual do site inteiro. A AviraHost oferece planos de hospedagem com cPanel, suporte técnico especializado e ambiente otimizado para WordPress, reduzindo os riscos de migração.