15 fantásticos comandos SQL para WordPress

Para quem faz uso um pouco mais avançado do WordPress, especialmente quem trabalha desenvolvendo sites com a plataforma, é bem comum aparecerem situações um tanto complexas. Para estas questões, seguem 13 fantásticos comandos SQL para WordPress!
Uma maneira prática de executar comandos SQL é através do phpMyAdmin. Até a hospedagem mais básica dá acesso à ferramenta de banco de dados, então não há dificuldades nisso. Uma vez no sistema, você deve selecionar aba “SQL” e escrever/colar a instrução SQL que deseja executar.

Alterar siteurl e homeurl
WordPress armazena o caminho absoluto da URL do site (“siteurl”) e URL da home (“homeurl”) no banco de dados. Portanto, se você transferir o seu site WordPress do localhost para o servidor, por exemplo, o site não vai carregar! Isso ocorre porque o caminho absoluto ainda está apontando para o seu localhost. Você vai precisar executar um comando para resolver isso.
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';
Alterar GUID
Depois de migrar seu blog a partir de, por exemplo, localhost, para o servidor ou de um outro domínio para um novo domínio, você terá que corrigir as URLs para o campo GUID na tabela wp_posts. Isto é crucial, porque GUID é usado para montar o slug de seu post do caminho absoluto do artigo correto.
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com');
Alterar URL no conteúdo
O WordPress utiliza caminhos absolutos no URL ao invés de um caminho relativo quando vai armazená-los no banco de dados. Dentro do conteúdo de cada registro de artigo, ele armazena todas as URLs antigas referenciando as fontes antigas. Portanto, você precisará alterar todas essas URLs com o endereço do novo domínio.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com');
Alterar apenas o caminho das imagens
Caso seja preciso alterar o domínio das imagens inseridas nas páginas e artigos, esta solução vai ajudar você a fazer isso de forma simples.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.enderecoantigo.com', 'src="http://www.endereconovo.com');
Também é preciso atualizar o GUID para o tipo “attachment” com a seguinte instrução SQL:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.enderecoantigo.com', 'http://www.endereconovo.com') WHERE post_type = 'attachment';
Atualizar Post Meta
Atualizar Post Meta funciona quase da mesma maneira como atualizar a URL no conteúdo do post. Se você tiver dados extras para cada post, você pode usar a seguinte instrução para alterar todos eles.
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.enderecoantigo.com','http://www.endereconovo.com');
Alterar o nome usuário padrão “admin”
Apesar de que na versão 3 do WordPress o usuário “admin” poderá ser alterado no momento da instalação, não custa deixar para a posteridade a dica de como alterar o nome do “admin”.
d98e996c3288d902f0be4e5f138f64e7006
Resetar password
Já quis resetar sua senha no WordPress mas, por algum motivo, não conseguiu usar a seção para resetar o password? Eis a solução:
UPDATE wp_users SET user_pass = MD5('senha') WHERE user_login = 'login';
Transferir artigos de um autor para outro
Para transferir os artigos de um autor para outro, você gasta um tempo enorme se fizer isso manualmente. Com o comando SQL a seguir, é possível fazer isso facilmente. Para a dica, é preciso saber o ID dos autores.
UPDATE wp_posts SET post_author = 'id_novo_autor' WHERE post_author = 'id_autor_antigo';
Apagar revisões
Quando se está editando um artigo no WordPress, é comum cópias de segurança serem feitas para garantir o trabalho feito. São as chamadas “revisões”. Com o tempo, o número de registros de revisões fica grande e isso pode comprometer a performance do banco de dados. Para apagar todas as revisões de artigos, dê o seguinte comando 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'
Lembrando que este é o comando para apagar revisões já feitas. Caro queira desativar o recurso (ou limitar o número de revisões), saiba como neste artigo sobre como limitar e desativar revisões de posts no WordPress.
Apagar post meta
Instalar e remover plugins é algo corriqueiro quando se trabalha com WordPress. Alguns plugins precisam de criar alguns post meta para funcionarem corretamente e, para esses casos, não é raro o acontecimento de, mesmo depois de o plugin ser desinstalado, algum “garbage meta” ficar enchendo o BD desnecessariamente. Uma limpeza em algum valor de post meta, às vezes, se faz necessária.
DELETE FROM wp_postmeta WHERE meta_key = 'nome-chave-meta';
Exportar todos os e-mails de comentários
Quanto mais tempo seu blog/site fica no ar, é provável que mais comentários receba nos artigos publicados. Se, por algum motivo, for preciso uma listagem com e-mail de todas as pessoas que já comentaram até então, basta executar o seguinte comando:
SELECT DISTINCT comment_author_email FROM wp_comments;
Uma vez que a listagem esteja concluída, exporte tudo através do phpMyAdmin.
Apagar todos pingbacks
A medida que o site/blog fica no ar – e se você tiver bom conteúdo a oferecer – o número de pingbacks começa a influenciar a qualidade do banco de dados. Para apagar todos pingbacks, proceda da seguinte maneira:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
Apagar todos comentários de SPAM
Sem maiores explicações, eis a maneira de deletar todos os comentários marcados como SPAM:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Identificar tags não usadas
Num banco de dados WordPress, se você executar alguma query SQL para apagar posts, as tags relacionadas não serão apagadas e continuarão aparecendo na nuvem de sugestão de tags e listagem de tags. Para identificar esse tipo de tag, execute a seguinte instrução 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;
30 interações em "15 fantásticos comandos SQL para WordPress"
10 Comandos SQL para Wordpress | Wordpress Tech - Themes, Plugins, Dicas para Wordpress
15 comandos SQL fantásticos para WordPress | MAJTec - O meu espaço
15 fantásticos comandos SQL para WordPress « Referência própria do wordpress
Excelente! Favoritado com direito a 5 stars!
Muito bom este artigo.
São coisas corriqueiras e necessárias na nesta vida de WordPress…
Ótima dica final …se você não souber muito bem o que está fazendo…
Sobre o tópico 9: Com esta de "salvamento automático" o número de revisões é imenso mesmo. Encontrei um plugin que permite regular a quantidade de revisões a armazenar, e apagar manualmente as que quiser em cada post. Revision Control http://wordpress.org/extend/plugins/revision-cont…
@ Fábio ZC
Várias delas com certeza é por causa dos comentários, que enriquecem o conteúdo!
@ Acelio
Pois é, tem que fazer essa ressalva; vai que a pessoa dá um crash no BD, aí vai dizer que foi o danado do desenvolvimento para web… Rapaz, bem interessante esse plugin, fica a dica! ;-)
Excelente artigo!!!!
É muito mais vantajoso conhecer e fazer algumas instruções SQL para resolver problemas e facilitar por exemplo, a migração de sites em WordPress do que fazer uma nova instalação, exportar xml de conteúdo do local antigo e importar no novo, etc, etc.
Dicas guardadas!
Muito util,
obrigado!
@ Matheus,
@ Felipe
Obrigado pela força, pessoal! Aguardamos a participação de vocês nos próximos artigos, também! :-D
Cara, você salvou vidas!
Você explicou uma coisa super simples que os outros não conseguiam!
Parabéns!
@ Rodrigo Bacelar
Que bom que ficou fácil de entender. Significa que o objetivo foi cumprido! ;-) Abraços!
show valew
Sensacionante!!!!
Usei agora as dicas funcionaram perfeitamente, ótimo tutorial!
Muito útil essa dica, tá nos favoritos.
abraço
Obrigado pela força e que bom que os comandos estão sendo úteis! Se tiverem mais algum SQL especial para o WP, podem comentar! ;-)
Favoritado! É sempre uma dor de cabeça migrar de uma pasta pra outra.
Ola,
Sou novo no WP, e to migrando parcialmente do blogspot pro WP,jà que tenhoainda um site là andando. To com problema nas imagens, pois nao aparecem em galeria, somente como postagens individuais, e vi o item 4 que vc escreveu, serà que pode ajudar ??? porem nao sei onde inserir..passo a passo,sou totalmente leigo….poderia me ajudar ?
O template que escolhi foi o ARRAS, jà vi que tem suporte miniaturas, e jà importei mais de 1000 postagens.
No caso, nunca mexi no blogspost e não tenho ideia do que possa ser. Mas isso deve ser facinho de encontrar no Google. Abraços!
Não desenvolvo em WordPress há quase dois anos, mas geralmente desativava o uso de revisões no wp-config.php.
O comando não é para desativar, é para apagar as revisões que foram feitas…
Pois é, mas é melhor desativar as revisões no início do desenvolvimento do que excluí-las depois, não?
Bom, de qualquer forma, só quis contribuir com o material.
Sim, o indicado é isso. Entretanto, a pessoa pode descobrir ou decidir desativar o recurso somente depois de várias revisões feitas.
Atualizei o artigo com essa observação. Obrigado pela contribuição! ;-)
Eu preciso fazer uma coisa e não estou conseguindo, preciso criar uma página para o usuário alterar dados do post, mas sem estar na admin padrao do wp mas eu mesmo criar um form que atualize dados de um determinado post do wp
Estude Pods. Abraços!
Sei que já faz tempo que escreveu este artigo, mas me deparei com um tremendo lixo na tabela wp_postmeta. uma coisa que fui logo apagando foi o sexybookmarks , _wp_old_slug, e hash do twitter, mas tem mais de 3 mil registros lá e não sei se dá pra apagar mais coisa (eu gostaria de poder)…pode me ajudar?
Alguns dos meta keys são: _edit_lock, _edit_last, _aioseop_keywords, views,
Bom dia amigo!! Sei que esse post é antigo, mas tenho uma necessidade recente e urgente rsrsrs..
Tô me aventurando no wordpress agora e esta acontecendo uma coisa curiosa com um blog que eu peguei pra fazer…
Primeiro de tudo… eu importei todos os posts, coments, tags e categorias do blogger para o wordpress.. deu tudo certo.. e durante a fase de desenvolvimento (antes de eu mudar o dns pro dominio dela) eu usava a seguinte formatação de links nos posts:
http://aificadica.com.s123047.gridserver.com/?p=1…
ou seja ?p=id_do_post
Ok.. mas entao adotei a nova formatação de link de acordo com a do blogger, para fins de SEO e para aproveitar os links da menina.. e ficou assim: (tal qual o blogger)
Ex: http://aificadica.com/2011/08/todas-maquiam.html
Repare que o blogger já esta funcional, belezinha… mas instalei aquele plugin LINKWITHIN para gerar posts relacionados com thumbs..
Bom, eis que ele ainda ESTÁ SUGERINDO LINKS VELHOS!!!!!!!
Dessa forma aqui por exemplo: http://aificadica.com.s123047.gridserver.com/?p=1…
A pagina obviamente vai dar em lugar nenhum, ja q eu mudei o modelo de permanent links..
Pq q ele ainda esta puxando e sugerindo links velhos?? Me indaguei com isso e acabei chegando a esse processo de atualizar o GUID..
Mas ainda to um pouco com medo de mexer no banco.. que q eu devo fazer afinal??? me ajude plz..
Rapaz, essa dúvida é bastante específica. Acho mais indicado você procurar uma ajuda num fórum de SEO.
Abraços!
muito bom mesmo. Valeu brother