Queries SQL úteis para o WordPress

Publicado em 21/02/2015 às 08:36

Mover o seu site wordpress de um servidor para outro, ou de um ambiente localhost para um servidor web, pode ser uma tarefa complicada pra quem faz pela primeira vez e não tem tanta experiência. Nesse tutorial vou mostrar alguns comandos SQL que podem ser rodados diretamente no MySQL do seu WordPress.

Após migrar todos os arquivos do seu wordpress, você provavelmente vai importar o banco de dados MySQL para um novo banco. Após realizar a importação, é importante ajustar algumas coisas nesse novo banco de dados para que o seu WP funcione adequadamente.

Antes de tudo faça um backup

A esta altura, provavelmente você já deve ter um backup do seu banco. Se não tem, providencie um backup antes de realizar os comandos.

Acessando a guia de comandos SQL

  1. Acesse o phpMyAdmin e selecione o seu banco de dados
  2. Selecione a guia SQL

IMPORTANTE: os comandos SQL utilizados consideram que os prefixos das tabelas do seu banco são wp_, caso este não seja o seu caso certifique-se de alterá-las antes de rodar o comando.

Mudando o siteurl e o homeurl

O WordPress armazena a URL da home do seu site, bem como o endereço de onde ficam armazenados seus arquivos do WP. Se você simplesmente migrar seus arquivos e MySQL de um local para outro (ex: de localhost para um servidor web) o seu site não vai funcionar. Caso mude de hospedagem mas mantenha o mesmo domínio esse problema não ocorrerá, já que o domínio continuará sendo o mesmo.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.sitevelho.com.br', 'http://www.sitenovo.com.br') WHERE option_name = 'home' OR option_name = 'siteurl';

Mudar a URL no conteúdo

O wordpress utiliza caminhos absolutos para armazenar os links no conteúdo de seus posts. Portanto ao mudar de domínio, todos os links dentro dos seus posts estão referenciando o domínio antigo, então é necessário atualizá-los.

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.sitevelho.com.br', 'http://www.sitenovo.com.br');

Mudar o caminho das imagens

No caso de optar usar uma CDN para distribuir seu conteúdo, você pode alterar apenas o caminho das imagens em seu banco de dados e passar a apontá-los para sua CDN. Depois realizar as configurações em sua CDN, você deve utilizar o código abaixo para alterar o caminho das imagens. Outra opção seria utilizar um plugin que faça isso, como por exemplo o W3 Total Cache.

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.sitevelho.com.br', 'src="http://cdn.sitenovo.com.br');

Atualizar a meta dos posts

Atualizar a meta dos posts é quase o mesmo que atualizar as URL no conteúdo. Se você armazenou qualquer informação com a URL nos campos meta, você deve atualizá-los aqui.

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.sitevelho.com.br','http://www.sitenovo.com.br');

Resumindo tudo num único comando

Para que você não tenha que executar cada um dos comandos individualmente, você pode rodar um único comando com todas as linhas de comando. Você pode personalizar o comando, retirando as linhas que não precisa. Substitua o @oldurl pelo seu endereço antigo (entre aspas simples), ex: ‘http://localhost/antigo’. Substitua o @newurl pelo seu endereço novo (entre aspas simples), ex: ‘http://www.sitenovo.com.br’.

Preste atenção no prefixo das tabelas. No exemplo abaixo estamos utilizando o padrão do wordpress “wp_”. Se o seu site utiliza outro prefizo, altere o comando.


UPDATE wp_options SET option_value = replace(option_value, @oldurl, @newurl) WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, @oldurl, @newurl);
UPDATE wp_posts SET post_content = REPLACE (post_content, CONCAT('src="', @oldurl), CONCAT('src="', @newurl));
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, @oldurl, @newurl);

Esta é uma adaptação de um post originalmente escrito em inglês.