Veja como mudar domínio de um site wordpress com wp-cli, essa ferramenta possui o recurso de search-replace.
A função de search-replace basicamente busca no banco de dados por “algo” e substituí por “algonovo”.
Com isso o wp-cli é a ferramenta perfeita para utilizar em uma migração de site onde o domínio vai ser alterado.
Faça backup antes
Lembre-se de que sempre é importante fazer um backup do seu banco de dados antes de fazer mudanças significativas no site WordPress, para que você possa restaurar o site caso algo dê errado.
Na raiz do site wordpress execute o backup do banco de dados
wp db export backup.sql
Comando do wp-cli
Depois execute o comando abaixo para substituir o domínio velho pelo domínio novo.
wp search-replace 'https://antigo-dominio.com' 'https://novo-dominio.com' --skip-columns=guid
O parâmetro --skip-columns=guid é usado para evitar substituir valores na coluna “guid” do banco de dados, que é usada para gerar links permanentes (permalinks) para posts e páginas.
Exportar database com as mudanças:
wp search-replace 'https://antigo-dominio.com' 'https://novo-dominio.com' --skip-columns=guid --export=database.sql
Ao adicionar --export=database.sql no final do comando acima, vai ser exportada uma base de dados nova com as mudanças, perfeita para fazer a migração de servidor.
Usar plugins em alternativa
Alguns plugins também fazem search and replace no banco de dados e funcionam para migrar para https:
Usar phpMyAdmin como alternativa
As mudanças do bando de dados podem ser feitas diretamente através de uma ferramenta como phpmyadmin ou adminer.
Esses são os endereços essenciais:
UPDATE wp_options SET option_value = replace(option_value, 'https://antigo-dominio.com', 'https://novo-dominio.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://antigo-dominio.com','https://novo-dominio.com');
UPDATE wp_posts SET post_content = replace(post_content, 'https://antigo-dominio.com', 'https://novo-dominio.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://antigo-dominio.com','https://novo-dominio.com');
Outras dicas:
Esse simples comando resolve a alteração de domínio, mas pode ser usado para substituir em outros casos, como para adicionar loading=“lazy” em iframes.
wp search-replace '<iframe ' '<iframe loading="lazy" ' --skip-columns=guid
Caso seu site não seja HTTPS, utilize o wp-cli para migrar imediatamente.
Como usar o WP-CLI
Comandos para instalar o WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Agora seu servidor pode executar o wp-cli em qualquer diretório, mas para utilizar o wp-cli é preciso estar dentro do diretório raiz do wordpress.
