8 SQL Hacks úteis para Wordpress
janeiro 2, 2009 por Reinaldo Nascimento
Em Wordpress
Nos 10 últimos anos, a banco de dados MySQL tornou-se incrivelmente popular na web. Cada blog criado no WordPress possui uma base de dados do MySQL contendo todas as configurações, ajustes, comentários e muito mais.
Enquanto, às vezes, os plugins e hacks de codificação conseguem resolver alguns problemas e executar algumas tarefas, outras vezes você não tem outra escolha a não ser executar comandos de SQL no phpMyAdmin ou diretamente à base de dados através de SSH.
Vou lhe mostrar 8 hacks úteis de SQL para WordPress. Cada seção deste artigo apresenta um problema, sugere uma solução e fornece uma explicação para ajudá-lo a compreender a solução.
1. Criando backup do seu banco de dados

O problema. Não execute nenhuma das dicas apresentadas nesse artigo sem antes criar um backup de sua base de dados do Wordpress.
A solução. Para criar um backup manualmente, no phpMyAdmin, siga as seguintes etapas:
- Faça login no phpMyAdmin e selecione sua base de dados do Wordpress.
- Feito isso, clique na aba “Exportação” localizado no menu horizontal superior.
- Selecione um método de compressão (pessoalmente, eu uso gzip), e clique no botão “Executar”.
- O navegador lhe perguntará se você quer fazer download o arquivo de backup. Obviamente, selecione “Sim” e salve o arquivo em uma pasta de sua preferência.
Explicação. É importante saber que usuários do Wordpress podem instalar o plugin WP-DB-Backup e assim criar facilmente backups regulares de seus dados.
2. Exclusão em Lote de Revisões dos Posts

O problema. Revisões de Posts é um recurso do WordPress presente a partir da versão 2.6 e pode ser muito útil, porém aumenta significativamente o tamanho de sua base de dados do MySQL. Claro, você pode excluir manualmente as revisões dos posts, mas pode ser um trabalho longo e chato.
A solução. A solução para esse problema é muito simples: nós excluiremos as revisões dos posts usando uma simples expressão SQL. O resultado será surpreendente se você tiver muitos posts: Sua base de dados será reduzida para a metade do seu tamanho!
- Entre no phpMyAdmin e selecione sua base de dados do WordPress.
- Clique na aba “SQL” e cole o seguinte código na janela de comando de SQL:
DELETE FROM wp_posts WHERE post_type = "revision";
Explicação. A tabela wp_posts tem um campo chamado post_type. Este campo pode ter valores tais como “post”, “page” ou “revision.” Para ficarmos livres das revisões, basta excluirmos todas entradas com post_type igual a “revision”.
Fonte:
3. Apagar milhares de Spams de Comentários em segundos

O problema. História verdadeira: um amigo meu, recentemente, criou seu próprio blog e começou a promovê-lo em toda parte na Internet. Depois de algumas semanas de trabalho intensivo, passou alguns dias em férias, sem acesso à Internet.
Quando retornou, acessou seu blog e viu… mais de 5000 comentários esperando moderação! Naturalmente, a maioria deles eram Spam, mas ele precisava verificar cada um para separar os Spams dos comentários feitos por usuários regulares.
A solução. “Feliz”, meu amigo me contou seu problema. Já tinha gastado mais de 45 minutos para excluir manualmente os Spams quando eu lhe mostrei esta útil e simples rotina:
- Entre no phpMyAdmin e selecione sua base de dados do WordPress.
- Clique na aba “SQL” e cole o seguinte código na janela de comando de SQL:
DELETE FROM wp_comments WHERE comment_approved = '0';
Explicação. A tabela dos wp_comments contem um campo chamado comment_approved, que recebe um valor booleano (1 ou 0). Os comentários aprovados têm um valor 1, e os comentários que esperam a moderação têm um valor 0. Executando o comando acima, nós excluimos simplesmente todos os comentários que não foram aprovados ainda.
Seja cuidadoso. Esta solução pode ser consideravelmente útil se você tem milhões de spams de comentários, igualmente apagará comentários válidos ainda não aprovados. Se você ainda não usa o plugin Akismet, instale-o imediatamente para impedir spamming.
Fonte:
4. Alterando a Atribuição do Post

O problema. Quando você instalou o WordPress, um usuário “admin” foi criado. Alguns blogueiros cometem o erro de usar esse cliente para escrever seus posts, até perceberem que não fica muito pessoal.
A solução. A alteração do autor em cada post toma muito tempo. Felizmente, uma expressão SQL pode ajudá-lo a resolver esse problema:
- Entre no phpMyAdmin e selecione sua base de dados do WordPress.
- Primeiramente, precisamos dos IDs corretos dos usuários. Para fazer isso, abra a janela de comando SQL e execute a seguinte expressão:
SELECT ID, display_name FROM wp_users;
- o phpMyAdmin mostrará uma lista de usuários com seus respectivos IDs. Permita informar que NEW_AUTHOR_ID é a identificação do autor mais recentemente criado, e OLD_AUTHOR_ID é a identificação do usuário admin.
- Depois que você identificar os IDs do NEW_AUTHOR_ID e do OLD_AUTHOR_ID, execute o seguinte comando:
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
- Pronto, agora todos os posts anteriormente atribuídos ao usuário admin, serão atribuídos ao usuário válido de sua preferência.
Fonte:
5. Resetar Senha Manualmente

O problema. A fim proteger seus blogs, os usuários costuma utilizar senhas fortes, tais como u7*KoF5i8_. Naturalmente, esta é uma boa prática, mas eu ouvi muitas histórias de senhas esquecidas do usuário admin.
A solução. Quando você perde sua senha, o WordPress pode enviar-lhe por e-mail um link para restaurá-la. Mas se você não tem o acesso ao endereço de e-mail gravado na base de dados de WordPress, ou se você preferir apenas executar um comando simples diretamente no banco de dados, está aqui o hack.
- Entre no phpMyAdmin, selecione sua base de dados do WordPress e abra a janela do SQL.
- Copie e cole o seguinte código na caixa de texto de SQL (supondo que seu username seja “admin “):
UPDATE `wp_users` SET `user_pass` = MD5('SENHA') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;
- Pronto. Sua senha foi substituída com sucesso por o que quer que você tenha introduzido em (’SENHA’).
Explicação. As senhas dos usuários são gravadas na tabela wp_users. Claro, é usada criptografia MD5 para tornar os dados seguros no banco de dados.
Executamos um comando “UPDATE” de codificamos o valor da senha com MD5() para converter o valor passado para MD5. A cláusula “WHERE” garante que só estejamos alterando a senha do usuário chamando “admin”. Caso não coloquemos a cláusula “WHERE” como informado, todos os usuários terão as senhas alterados pelo valor que informarmos em MD5(’SENHA’).
Fonte:
6. Alterando o Domínio do seu Wordpress

O problema. Embora não seja recomendado, você pode querer em algum ponto mudar o domínio do seu Wordpress e manter os dados do seu blog. Como o WordPress grava seu domínio na base de dados, você tem que alterar seu domínio na base de dados para que o Wordpress consiga identifcar seu novo domínio.
A solução.
- A primeira coisa a fazer é entrar no phpMyAdmin e selecionar sua base de dados do WordPress.
- Clique em “SQL” para abrir a janela de comando de SQL. Para alterar seu domínio, execute este primeiro comando:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://www.siteantigo.com.br', 'http://www.sitenovo.com.br') WHERE option_name = 'home' OR option_name = 'siteurl';
- Agora nós temos que substituir as “URLs Relativas (guid)” de cada post. O seguinte comando fará esse trabalho:
UPDATE wp_posts SET guid = REPLACE(guid, 'http://www.siteantigo.com.br','http://www.sitenovo.com.br');
- Estamos quase lá. A última coisa a fazer é uma busca na tabela wp_posts, alterando o conteúdo dos posts, para certificar-se de que nenhum post tenha “URLs Absolutas” para o domínio antigo:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.siteantigo.com.br', 'http://www.sitenovo.com.br');
- Pronto. Você já pode entrar em seu Wordpress usando seu novo domínio.
Explicação. Para mudar facilmente nosso domínio no WordPress, eu utilizei a função super-útil do MySQL “replace” que permite que você substitua um termo por outro.
Fonte:
7. Mostrar o Número de Consultas SQL em seu Blog

O problema. Para otimizar o tempo de carregamento do seu blog, saber o número de consultas feitas à base de dados é muito importante. A fim reduzir consultas, a primeira coisa a saber é quantas consultas são feitas em uma única página.
A solução.
- Desta vez, não é necessário entrar no phpMyAdmin. Apenas abra o arquivo footer.php de seu tema e adicione as seguintes linhas de código:
<?php if(is_user_logged_in()){?> <?php echo get_num_queries(); ?> consultas em <?php timer_stop(1); ?> segundos. <?php }?>
- Salve o arquivo e acesse seu blog. No rodapé da página, você verá o número de consultas feitas à base de dados do WordPress bem como o tempo que levou para as fazer.
Explicação. Parece que muitos usuários do WordPress não estão cientes desta função útil. A função get_num_queries() mostra a quantidade de consultas feitas à base de dados durante o carregamento da página.
Note que o código acima indicará somente o número de consultas de usuários logados, porque os visitantes e os robôs de Sistemas de Busca não precisam saber sobre isso. Mas, se você quizer disponibilizar essa informação ao público, apenas remova a instrução condicional if (is_user_logged_in()).
Fonte:
8. Restaurando seu Banco de Dados do Wordpress

O problema. Imaginemos que, por qualquer motivo, como um problema de invasão ou de melhoramentos no sistema, você tenha perdido os dados do seu blog ou tais dados foram corrompidos. Se você tiver um backup (e eu espero que tenha!), você terá que importá-lo para sua base de dados do WordPress.
A solução.
- Entre no phpMyAdmin e selecione sua base de dados do WordPress.
- Clique na aba “Importação” no menu horizontal superior.
- Clique no botão “Procurar (Browse)” e selecione o arquivo de backup mais recente da base de dados em seu disco rígido.
- Clique no botão “Executar”. Se tudo correr bem, sua base de dados do WordPress será inteiramente funcional outra vez.
Este artigo é uma versão em português do original encontrado no endereço abaixo:
http://www.smashingmagazine.com/2008/12/18/8-useful-wordpress-sql-hacks

