14 Comandos SQL que todo blogueiro precisa saber

Aviso importante!

Eu sei que você não quer ver propagandas, porém o conteúdo gratuito só está aqui graças a publicidade. Considere desativar o AdBlock para esse site.

Quem trabalha desenvolvendo sites com WordPress frequentemente encontra-se em situações um pouco mais complexas e digamos assim "fora do padrão" que estamos acostumados. Para resolver algumas destas situações, segue uma lista de comandos SQL que eu considero básicos para quem trabalha ou quer trabalhar com WordPress.

Lembrando que estes comandos devem ser executados dentro do PHP MyAdmin de seu plano de hospedagem ou em seu programa SGDB preferido. Se você mudou o prefixo das tabelas na hora da instalação do WordPress, você deverá adaptar as queries para a sua necessidade.

Nota: faça um backup do banco de dados sempre antes de executar qualquer tipo de SQL, principalmente se você não tem um conhecimento avançado de linguagem SQL. Não me responsabilizo pelos uso indevido dos comandos aqui sugeridos, nem por eventuais percas de dados.

Alterar SITEURL e HOMEURL

O WordPress guarda o caminho absoluto da URL do site e da home no BD. Neste caso se você transferir seu blog de servidor (do localhost para um servidor web por exemplo) irá precisar definir estes valores conforme seu domínio agora hospedado.

[sourcecode language="sql"]
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com')
WHERE option_name = 'home'

OR option_name = 'siteurl';

[/sourcecode]

Alterar o GUID

Depois de migrar seu blog de servidor ou domínio, você terá que acertar as URLs do campo GUID na tabela wp_posts. Isto porque o GUID é usado para montar o slug de seu post, caso contrário o post irá ficar com o endereço antigo.

[sourcecode language="sql"]
UPDATE wp_posts
SET guid = REPLACE (guid, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com');
[/sourcecode]

Alterar URL no conteúdo

O WordPress utiliza caminhos absolutos nas URLs (nas imagens por exemplo) ao invés de um caminho relativo quando vai armazená-los no banco de dados. Portanto, você precisará alterar todas essas URLs com o endereço do novo domínio.

[sourcecode language="sql"]
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com');
[/sourcecode]

Alterar apenas o caminho das imagens e anexos

Este comando serve para alterar somente os endereços das imagens inseridas nos posts e páginas, e é muito útil se você for utilizar um outro servidor de hospedagem de imagens por exemplo.

[sourcecode language="sql"]
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'src="http://www.enderecoantigo.com', 'src="http://www.endereconovo.com');

UPDATE wp_posts
SET guid = REPLACE (guid, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com') WHERE post_type = 'attachment';
[/sourcecode]

Atualizar Post Meta (campos personalizados)

Este comando irá atualizar os campos personalizados de seus posts, se você usar eles é claro.

[sourcecode language="sql"]
UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, 'http://www.enderecoantigo.com','http://www.endereconovo.com');
[/sourcecode]

Alterar o nome usuário padrão “admin”

Este comando serve para alterar o nome de usuário padrão do WordPress (agora já é possível escolher isso na instalação).

[sourcecode language="sql"]
UPDATE wp_users
SET user_login = 'nomequevocequiser'
WHERE user_login = 'Admin';
[/sourcecode]

Resetar senha de usuários

Se você por acaso esquecer a senha de acesso ao painel de administração, poderá alterar a mesma da seguinte forma.

[sourcecode language="sql"]
UPDATE wp_users
SET user_pass = MD5('senha_nova')
WHERE user_login = 'nome_usuario';
[/sourcecode]

Transferir artigos de um autor para outro

Com o comando abaixo você pode facilmente transferir artigos de um autor para outro, tarefa esta que se for feita manualmente pode levar muito tempo.

[sourcecode language="sql"]
UPDATE wp_posts
SET post_author = 'id_novo_autor'
WHERE post_author = 'id_autor_antigo';
[/sourcecode]

Deletar as revisões de post

Para apagar todas as revisões de posts que o WordPress cria automaticamente enquanto você escreve, basta executar o seguinte comando.

[sourcecode language="sql"]
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
[/sourcecode]

Deletar post meta (campos personalizados)

Muitas vezes fazemos testes com diversos plugins, e estes por sua vez criam diversos campos personalizados para os posts. Porém quando desinstalamos o plugin estes campos não são apagados. Sendo assim você pode deletar estes campos executando o comando abaixo.

[sourcecode language="sql"]
DELETE FROM wp_postmeta
WHERE meta_key = 'nome-chave-meta';
[/sourcecode]

Exportar emails dos comentários sem repetir

Isto serve para enviar uma newsletter por exemplo, neste caso poderia aproveitar todos os emails de pessoas que já fizeram comentários em seu blog.

[sourcecode language="sql"]
SELECT DISTINCT comment_author_email
FROM wp_comments;
[/sourcecode]

Deletar os pingbacks

A medida que o blog vai crescendo a quantidade de pingbacks pode influenciar no desenpenho do banco de dados, portanto de tempos em tempos é necessário apagar os mesmos.

[sourcecode language="sql"]
DELETE FROM wp_comments WHERE comment_type = 'pingback';
[/sourcecode]

Deletar comentários marcados como SPAM

Este comando dispensa explicações...

[sourcecode language="sql"]
DELETE FROM wp_comments
WHERE comment_approved = 'spam';
[/sourcecode]

Identificar tags que não estão sendo usadas

Serve para ver se existe alguma tag que não está lincada com nenhum post ou página, assim você poderá posteriormente excluir as mesmas.

[sourcecode language="sql"]
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt
ON wt.term_id=wtt.term_id
WHERE wtt.taxonomy='post_tag'
AND wtt.count=0;
[/sourcecode]

Fonte: http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 2 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • maugustodias comentou em

    Muito bom, já estou também fazendo o curso de SQL aqui do seu site, eu sei WordPress, estou aprendendo PHP e PHP OO e agora também o SQL, já sei o Photoshop e dentre os serviços que realizo, nunca fico um dia sem buscar na net algo para aprimorar meus conhecimentos. Pois cabeça vázia é perda de tempo e de evolução...

    Responder

Deixe seu comentário