Tempo di Lettura: 2 minuti
WordPress ha una particolarità nella gestione dei commenti di spam che a qualcuno potrebbe risultare fastidiosa: non li elimina definitivamente ma li flagga come spam (non permettendo, quindi, la loro visualizzazione nel blog). Per fare questo sfrutta il campo comment_approved che può assumere 3 stati:
0 -> In attesa di moderazione
1 -> Approvato
spam -> Commenti di spam
La non cancellazione del commento è dovuto al fatto che, WordPress gestisce automaticamente (in base a delle keyword impostate dal Pannello di Amministrazione), sia la semplice Moderazione Commenti che la BlackList Commenti; e come ogni cosa automatica è soggetta ad errore! Per cui i messaggi vengono salvati lo stesso nel database (nella tabella `wp_comments`) ma non vengono visualizzati sul blog. Il problema è che a lungo andare questi commenti flaggati come spam possono aumentare a dismisura: nel mio caso su un totale di 1969 commenti ben 989 erano di spam!
Diciamo che accumulare inutilmente messaggi di spam mi dava un pò fastidio; se ci si mette poi che andavano anche ad aumentare le dimensioni del mio database e dei miei backup quotidiani, allora ho deciso di eliminarli. Una volta avevo letto anche di un plugin per WordPress ma, non ricordando più dove andarlo a scaricare, ho deciso di usare qualche riga di SQL direttamente da PhpMyAdmin.
Ecco i passi che ho seguito, dopo aver opportunamente eseguito il backup della tabella wp_comments:
1. Contare il numero di commenti presenti sul proprio blog
SELECT count(*) FROM `wp_comments`;
1969
2. Contare il numero di commenti di spam
SELECT count(*) FROM `wp_comments` WHERE comment_approved = 'spam';
989 commenti
3. Per maggiore sicurezza ho fatto stampare a video gli id dei commenti ho verificato che appartenessero a commenti di spam veri:
SELECT `comment_ID` FROM `wp_comments` WHERE comment_approved = 'spam';
4. Cancellati tutti i commenti di spam
DELETE FROM `wp_comments` WHERE comment_approved = 'spam';
Righe cancellate: 989 (La query ha impiegato 0.0714 sec)
5. Ricontato il numero di commenti presenti dopo la cancellazione
SELECT count(*) FROM `wp_comments`;
980
6. Verificato che non ci fossero più i commenti di spam
SELECT count(*) FROM `wp_comments` WHERE comment_approved = 'spam';
0
Dimensioni tabella prima della cancellazione dello spam: 1.136.391 byte
Dimensioni tabella dopo la cancellazione dello spam: 411.186 byte
Grazie per il tip, però non so se usi già qualche forma di protezione maggiore con wordpress… Io ne ho provate un po’, ma secondo me il migliore è bad behaviour: http://www.ioerror.us/software/bad-behavior/.
Da quando l’ho messo non ho ricevuto più alcuna forma di spam… A dir poco spettacolare 🙂
questa proprio non la sapevo …
da me sono solo 54 ma preferisco stroncarli sul nascere.
grazie per la dritta
Grazie mille davvero utilissimo 🙂
Sono contento che questa guida serva a qualcuno 🙂 Grazie Treviño, proverò ad usare bad behaviour e poi ti dirò!
Ma nessuno usa Askimet ?
Anche io sono completamente a favore di Akismet, bisogna solo fare una registrazione su http://www.wordpress.org (non importa se il blog non viene usato) e mettere il codice che viene fornito dentro il plugin del nostro blog.
E voilà Akismet si occupa di filtrare il tutto e ogni tanto dobbiamo solo ripulire i commenti con un agile pulsantino.
In alternativa c’è anche Spam Karma 2 che è davvero notevole!
unknowngenius.com/blog/wordpress/spam-karma/
Tra i due non so cosa preferire, ma per un utente poco esperto raccomando alla grande Akismet!
Pingback: Giovanni Fiorenza Home Page 10 Ottobre 2008
Commenti di spam su WordPress: eliminarli definitivamente…
Oggi, nell’eseguire il backup del database di un sito WordPress mi sono accorto che stava diventando troppo pesante. Non vedevo il motivo di così tanto spazio occupato. Così, attraverso phpmyadmin ho iniziato a cercare le cause. Appena arrivato…..