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.
1 2 3 4 |
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.
1 2 |
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.
1 2 |
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.
1 2 |
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:
1 2 |
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.
1 2 |
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”.
1 2 3 |
UPDATE wp_users SET user_login = 'nomequevocequiser' WHERE user_login = 'Admin'; |
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:
1 2 3 |
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.
1 2 3 |
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:
1 2 3 4 |
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.
1 2 |
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:
1 2 |
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:
1 |
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:
1 2 |
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:
1 2 3 4 5 |
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; |