desenvolvimento para web

15 fantásticos comandos SQL para WordPress

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!

Este é um artigo traduzido do original “13 Useful WordPress SQL Queries You Wish You Knew Earlier“, do blog Onextrapixel, e sofreu algumas adaptações.

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.

13 fantásticos comandos SQL para WordPress: aba SQL do phpMyAdmin

Os comandos SQL para WordPress a seguir são para o prefixo padrão do WordPress “wp_”. Caso o prefixo de suas tabelas seja diferente (o que é recomendado, por questões de segurança), faça os devidos complementos necessários às queries.

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;
Lembre-se: é sempre bom fazer um backup completo de seu banco de dados antes de executar queries SQL (principalmente se você não souber muito bem o que está fazendo)!

30 interações em "15 fantásticos comandos SQL para WordPress"

  1. Fábio ZC25/05/2010 

    Excelente! Favoritado com direito a 5 stars!

  2. Acelio26/05/2010 

    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…

  3. Tárcio Zemel27/05/2010 

    @ 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! ;-)

  4. Matheus27/05/2010 

    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!

  5. Felipe27/05/2010 

    Muito util,

    obrigado!

  6. Tárcio Zemel28/05/2010 

    @ Matheus,

    @ Felipe

    Obrigado pela força, pessoal! Aguardamos a participação de vocês nos próximos artigos, também! :-D

  7. Rodrigo Bacelar12/08/2010 

    Cara, você salvou vidas!

    Você explicou uma coisa super simples que os outros não conseguiam!

    Parabéns!

  8. Tárcio Zemel15/08/2010 

    @ Rodrigo Bacelar

    Que bom que ficou fácil de entender. Significa que o objetivo foi cumprido! ;-) Abraços!

  9. Evandro14/12/2010 

    show valew

  10. Geraldo Augusto04/01/2011 

    Sensacionante!!!!

  11. Senhor W27/01/2011 

    Usei agora as dicas funcionaram perfeitamente, ótimo tutorial!

  12. Eduardo02/02/2011 

    Muito útil essa dica, tá nos favoritos.
    abraço

  13. Tárcio Zemel04/02/2011 

    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! ;-)

  14. Djalma16/03/2011 

    Favoritado! É sempre uma dor de cabeça migrar de uma pasta pra outra.

  15. Rogerio20/05/2011 

    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.

  16. Tárcio Zemel23/05/2011 

    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!

  17. Joel Wallis02/06/2011 

    Não desenvolvo em WordPress há quase dois anos, mas geralmente desativava o uso de revisões no wp-config.php.

  18. Tárcio Zemel05/06/2011 

    O comando não é para desativar, é para apagar as revisões que foram feitas…

  19. Joel Wallis05/06/2011 

    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.

  20. Tárcio Zemel05/06/2011 

    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! ;-)

  21. Antonio Carlos14/06/2011 

    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

  22. Tárcio Zemel17/06/2011 

    Estude Pods. Abraços!

  23. Daniele08/07/2011 

    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,

  24. Gustavo Sá05/08/2011 

    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..

  25. Tárcio Zemel16/08/2011 

    Rapaz, essa dúvida é bastante específica. Acho mais indicado você procurar uma ajuda num fórum de SEO.

    Abraços!

  26. mundofirefox27/09/2011 

    muito bom mesmo. Valeu brother

Comente!

A qualidade nunca se obtém por acaso; ela é sempre o resultado do esforço inteligente.

John Ruskin
Quer ganhar 1 ano grátis da Conta Negócios Basekit, uma das melhores ferramentas de criar sites do mundo? Saiba como!