O Akismet é uma das melhores coisas que já inventaram na luta contra o spam. O plugin é muito eficiente, e são raros os casos de comentários indesejados que passam pelo filtro. Está presente na instalação padrão do WordPress, e é, provavelmente, o plugin mais utilizado do mundo.
O problema é que o Akismet é eficiente após o envio do comentário. Em blogs pequenos, ou hospedados em servidores parrudos, isso é irrelevante. Mas em blogs de grande audiência, ou hospedados em servidores fracos, o volume de spam recebido pode ser prejudicial.
Cada comentário enviado faz com que o servidor trabalhe: muito PHP é processado, e informações são escritas no banco de dados. Imaginando um cenário caótico, de um blog que recebe milhares de spams diariamente, e está hospedado num servidor ruim, dá para imaginar o resultado, não? Não? Então lá vai: site lento, erros de timeout, e encheção de saco do suporte do servidor.
A solução, usando a lógica, é barrar esse comentário antes dele ser enviado. O spam é feito, majoritariamente, por robôs, ou bots, programas que varrem a Internet atrás de sites que rodam sob WordPress, e disparam contra eles suas armas, preenchendo automaticamente os campos do formulário de comentário: nome, e-mail, site e comentário. Se inserirmos um campo extra, incomum, e obrigatório, o bot fica incapacitado de enviar o comentário, simplesmente por não saber a resposta. Simples, não?
Mas, como fazer isso? É aqui que o Math Comment Spam Protection, um plugin desenvolvido pelo site alemão Software Guide, entra. Quando ativado, ele adiciona uma soma matemática no formulário, e o comentário só “entra” se a soma estiver correta. Como, até o momento, bots não têm essa capacidade, eles param ali, e seu blog fica, enfim, livre dessas pragas.
A instalação é um pouquinho diferente do convencional, pois envolve a edição do tema - mais especificamente, do arquivo comments.php. Baixe o plugin, descompacte-o e envie a pasta gerada para a /wp-content/plugins/, do seu WordPress. Ative-o, e em seguida, vá até o menu Options, e clique em Math Comment Spam, a fim de configurá-lo. Só altere os campos de mensagens de erro (Error Messages); os demais não precisam ser alterados.
Vá ao editor de temas (Presentation, Theme Editor), e selecione o arquivo comments.php (Comments). Nele, localize o formulário de comentário. Ele começa com a seguinte linha:
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
Localizado, insira o código (este aqui) no lugar que julgar mais conveniente - eu coloco entre os campos de site/blog e área de texto.

Este código está otimizado para o tema padrão do WordPress. Nada impede, todavia, que adaptações sejam feitas. Dêem uma olhada em como ficou no meu blog (imagem acima). Lá, aliás, tinha um problema sério com spam nos comentários. Não era o suficiente para prejudicar o servidor, mas estava próximo disso. Após a instalação do Math Comment Spam Protection, não recebi mais nenhum spam do tipo; só trackbacks, mas isso é assunto para outro post.
Espero que o tutorial lhes seja útil, e até a próxima!



Douglas Macedo : 11 fevereiro 2008 às 11:46 am
Teste!
Alenônimo : 11 fevereiro 2008 às 2:53 pm
Eu tenho uma solução melhor. É o plugin Challenge.
Não só ele adiciona o campo automaticamente em todos os temas como permite fazer diversos tipos de pergunta, não se limitando às matemáticas.
Você pode fazer operações matemáticas diferentes ao invés da soma, pode escolher um grupo maior de números, pode perguntar se a pessoa é humana (e colocar as respostas “sim, não, talvez, não sei” como respostas esperadas, etc.
Leonardo Cabral : 11 fevereiro 2008 às 5:14 pm
Interessante esse plugin, vou fazer uma explanação sobre ele no meu blog. Realmente quando falamos em poucos comentários fica fácil administrar, mas quando a quantidade de comentários é elevada, além da paciência para ficar conferindo um por uma para ver se é spamm mesmo, tem a questão do consumo de banda.
Uma ótica dica!
Alexandre Pereira : 12 fevereiro 2008 às 1:14 am
Obrigado pela dica!
Leonardo Soares : 14 fevereiro 2008 às 9:54 pm
Olá, estou tentando instalar e está dando erro quando coloco o código na página comments.php. Você poderia me enviar por email um exêmplo de como ficaria o código inserido no formulário? Ou mesmo postar aqui. Muito obrigado.
Leonardo Soares : 15 fevereiro 2008 às 6:13 pm
Aqui o erro:
Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in C:\Arquivos de programas\EasyPHP 2.0b1\www\wp-content\plugins\math-comment-spam-protection\math-comment-spam-protection.classes.php on line 71
thebuffalo : 22 fevereiro 2008 às 2:55 pm
Uso esse sistema e foi o que resolveu meus problemas com Spam. Não é 100% mas se tratanto de tecnologia não existe nada 100% eficaz.
Fábio : 10 março 2008 às 6:22 pm
Eu tentei umas 40000 vezes colocar na frente: /wp-content/plugins/ mais não deu.
Fábio : 11 março 2008 às 11:29 am
Parece que não é wp-content/plugins para colocar plugins, tantas vezes, um dia para o outro não funciona. O que devo fazer??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Adriano Geek : 16 março 2008 às 3:01 pm
Olá Érico no meu blog infelizmente este plugin está dando erro, mesmo colocando a resposta correta ele acusa como resposta inválida uma pena, pois é uma mão na roda para tirar a carga do servidor, abçs.
Zackshinra : 16 junho 2008 às 6:12 pm
Muito bom, estava tentando usar esse plugin. Só que eu pecava em não mudar o comments.php.
Valeu mesmo pela dica.