WordPress: como migrar tema filho sem perder estilos — direto no código

16 min de leitura · · WordPress, tema-filho, migração, cPanel, AviraHost, PHP, hospedagem · 0

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:

  1. Faça backup completo da pasta do tema filho e do tema pai via FTP ou gerenciador de arquivos do cPanel.
  2. Exporte o banco de dados MySQL com mysqldump para preservar as configurações do Customizer.
  3. Copie ambas as pastas para wp-content/themes/ no servidor de destino.
  4. Importe o dump SQL no banco de dados do novo servidor.
  5. Reative o tema filho em Aparência > Temas no painel do WordPress.
  6. 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 777 em 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 list via WP-CLI e inspecione o código-fonte do front-end para confirmar que o style.css do tema filho está sendo carregado corretamente antes de considerar a migração concluída.

Leia também

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.

Conheça os planos de hospedagem da AviraHost


Esta resposta foi útil?