Um verdade sobre o WordPress é que ele guarda todas as informações que passam pelo
seu banco de dados MySQL, mesmo aquelas informações que simplesmente não
valem para nada. Sejam artigos, páginas, comentários, blogroll, opções
de plugins… tudo!
Se o seu site ou blog tiver centenas ou milhares
de artigos e você precisar fazer uma alteração em seu banco de
dados que afete todos esses artigos, ir pelo painel de administração
para editar artigo-a-artigo será extremamente desgastante e
penoso. Portanto, a opção que você tem disponível é ir diretamente
no banco de dados MySQL do seu WordPress e executar queries para
realizar as alterações. Além disso, essa funcionalidade é uma
grande mais-valia, pois poupa-lhe imenso tempo e aumenta drasticamente a
sua produtividade.
Existem inúmeras razões para você editar
o seu WordPress, e também centenas de queries que você pode correr no
seu banco de dados, conforme os colegas do speckyboy
indicam no seu artigo, e depois existem as queries que são realmente
importantes e interessantes de usar, que são as que lhe indicamos já de
seguida!
Não se esqueça de fazer backup
O banco de dados do seu WordPress é o
local onde estão guardados dos os artigos do seu site, comentários e
opções de configuração que você realizou. Independentemente
do quão à vontade você se sente para executar estas Queries no seu SQL, por favor, faça um backup primeiro. Se desejar, pode ainda aprender como fazer backups automáticos do seu WordPress para o DropBox.
1. Adicionar um campo personalizado a todos os posts e páginas
Este truque irá adicionar um campo
personalizado (custom field) a todos os posts e páginas do seu banco de
dados. A única coisa que precisa fazer é substituir o ‘UniversalCutomField‘ por qualquer nome que você desejar e definir o ‘MyValue‘ para o valor que você quer nesse campo.
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');
Para posts apenas, use este código:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
`` AND post_type = 'post';
E, para páginas apenas, use este código:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
AND `post_type` = 'page';
2. Eliminar meta dados dos artigos
Quando você instala ou remove plugins do seu site, eles usam a função “post meta” para armazenarem informações. Depois de você remover o plugin, a informação continuará dentro da tabela post_meta, o que obviamente é dispensável. Altere a ‘YourMetaKey‘ para o valor que deseja e execute a sua query.
DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';
3. Identifique as tags não usadas
Num banco de dados do WordPress, se você corre uma query para eliminar artigos mais antigos, as tags desses artigos irão permanecer na listagem de tags. Com esta query você pode identificar quais as tags que já não estão em uso.
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;
4. Eliminar comentários de spam
Se você tem uma grande quantidade de comentários de SPAM no seu site que ainda não eliminou, considere correr esta query:
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
5. Eliminar comentários não aprovados
Esta query SQL irá eliminar todos os comentários não aprovados e não terá qualquer interferência nos comentários já aprovados.
DELETE FROM wp_comments WHERE comment_approved = 0
6. Desligar comentários em artigos antigos
Para esta query, especifique o comment_status como “open” (aberto), “closed” (fechado), ou “registered_only” (apenas membros registrados). Especifique também a data 2010-01-01 de acordo com as suas necessidades.
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';
7. Desligar ou ligar trackbacks e pingbacks
Ligar os pingbacks/trackbacks para todos os usuários:
UPDATE wp_posts SET ping_status = 'open';
Desligar os pingbacks/trackbacks para todos os usuários:
UPDATE wp_posts SET ping_status = 'closed';
8. Ligar/desligar pingbacks e trackbacks antes de uma certa data
Para esta query, especifique o ping_status como open ou closed. Não se esqueça de especificar também a data 2010-01-01 de acordo com as suas necessidades.
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';
9. Eliminar comentários com uma URL específica
Se você tem comentários de spam que contêm sempre a mesma URL, então esta query pode ajudá-lo a eliminar rapidamente esses comentários. A query seguinte elimina todos os comentários que contenham uma URL específica. O ‘%’ significa que qualquer url contendo a string entre ‘%’ será automaticamente eliminado.
DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;
10. Eliminar artigos com mais de XX dias
Para identificar artigos que estejam com mais de ‘X’ dias, rode esta query, e não se esqueça de trocar o ‘X’ pelo número de dias que você está desejando procurar:
SELECT * FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X
Para eliminar artigos com ‘X’ dias, use esta query:
DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X
11. Remover shortcodes indesejados
Os shortcodes para WordPress são fantásticos, mas quando você decide parar de os usar, o seu código irá permanecer dentro dos seus artigos. Eis uma query SQL simples para correr o seu banco de dados e eliminar shortcodes indesejados. Troque o ‘tweet‘ pelo nome do shortcode que pretende eliminar.
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;
12. Transforme seus artigos em páginas e vice-versa
Alterar posts para páginas é muito fácil, sendo que a única coisa que necessita fazer é correr esta query SQL no seu PHPMyAdmin:
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'
… e se você pretender trocar páginas para posts, use esta query:
UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'
13. Alterar autor de postagens em todos os artigos
A primeira coisa que você deverá fazer com esta query é definir os IDs do autor. Para encontrar esses IDs, pode rodar esta query:
SELECT ID, display_name FROM wp_users;
Assim que você tenha os IDs dos autores antigos e os IDs dos novos autores, insira o seguinte comando, não se esquecendo de trocar os campos ‘NEW_AUTHOR_ID‘ com o ID do novo autor e o ‘OLD_AUTHOR_ID‘ com o ID do autor antigo.
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
14. Eliminar revisões de artigos
As revisões de artigos podem ser muito úteis, mas ao mesmo tempo tornam o seu banco de dados MySQL pesado. Poderá eliminar as revisões de artigos manualmente, ou optar por rodar esta query SQL.
DELETE FROM wp_posts WHERE post_type = "revision";
15. Alterar a URL de destino
Depois de você ter mudado o seu site (arquivo de template, uploads e banco de dados) de um servidor para outro, a próxima coisa que você precisa fazer é indicar ao WordPress qual o novo endereço.
Não se esqueça de trocar o ‘http://www.old-site.com‘ pela velha URL, e o ‘http://www.new-site.com’ pela sua nova URL. Primeiro comando a usar:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Depois terá de alterar a URL da tabela wp_posts com este comando:
UPDATE wp_posts SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
E, finalmente, terá de fazer uma busca nos seus conteúdos para ter a certeza de que a URL está correta, usando este comando:
UPDATE wp_posts SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
16. Alterar o nome padrão “admin”
Qualquer instalação do WordPress cria uma conta padrão com o nome de usuário ‘Admin’. Se você alterar esse nome, você está aumentando a segurança do seu WordPress.
Troque o valor ‘YourNewUsername‘ pelo seu novo nome de usuário:
UPDATE wp_users SET user_login = 'YourNewUsername' WHERE user_login = 'Admin';
17. Procurar e subsbtituir conteúdo de um artigo.
Para procurar e substituir determinado conteúdo dos seus artigos, utilize o seguinte comando. Troque o campo ‘OriginalText‘ pelo texto que pretende remover/trocar e troque o campo ‘ReplacedText‘ pelo seu novo texto.
UPDATE wp_posts SET `post_content`
= REPLACE (`post_content`,
'OriginalText',
'ReplacedText');
18. Alterar a URL das imagens
Se você precisa mudar o caminho das suas imagens (URL), pode usar o seguinte comando:
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'src=”http://www.myoldurl.com', 'src=”http://www.mynewurl.com');
Até já!