Supprimer les commentaires Wordpress via mysql ou ssh

Les commentaires sur les sites internet peuvent souvent être problématiques pour diverses raisons et il peut s'avérer également plus fréquemment de se trouver face à un très grand nombre de spams que de commentaires légitimes et appréciables. Les systèmes CMS tels que Joomla! et Wordpress sont régulièrement la cible de spams dans les commentaires, qui peuvent rapidement représenter plusieurs milliers voire plusieurs dizaines de milliers de commentaires indésirable.

La première sécurité à mettre en place sous Wordpress est la modération des commentaires, qui fait que seul l'administrateur du site pourra les publier. On peut également limiter la possibilité de poster des commentaires aux utilisateurs inscrits, ou opter pour les solutions type reCaptcha, ou encore les divers plugins disponibles pour lutter contre  le spam, mais ces solutions peuvent être également des freins au bon fonctionnement des commentaires, et on peut alors se trouver avec un désert de commentaires alors que l'on essaye juste d'éviter le spam.

On peut aussi opter pour des système de commentaires externalisés type Disqus.

Une fois le spam fait sur votre site Wordpress, on peut bien sûr les supprimer depuis la console d'administration, mais à raison de 20 par 20, la tâche peut vite s'avérer plus que fastidieuse. Ici aussi on peut avoir recours à des plugins pour se débarrasser de ce spam, mais pour ceux qui veulent éviter d'augmenter leur collection de plugin, il peut être très facile et rapide de nettoyer tout ça avec quelques bases au niveau mysql ou ssh.

Le plus facile serait de se connecter à la base de données avec phpMyAdmin. Une ligne de commande suffira à se débarrasser de tous les commentaires non approuvés.

DELETE from wp_comments WHERE comment_approved =  '0'

On peut également de la même manière supprimer tous les commentaires marqués comme indésirables :

DELETE from wp_comments WHERE comment_approved = 'spam'

Ou encore ceux placés dans la corbeille :

DELETE from wp_comments WHERE comment_approved = 'trash'

Il se peut qu'à l'installation de votre Wordpress vous ayez demandé un préfixe de tables custom pour votre base de données, dans ce cas il faudra remplacer wp_ par votre préfixe.

 

Pour la deuxième méthode, il vous faudra vous connecter à votre serveur en ssh si votre hébergeur le permet.

La commande pour supprimer tous les commentaires non approuvés est alors :

mysql -uDB_USER_NAME -pDB_USER_PASSWORD -DB_NAME -e "DELETE FROM wp_comments WHERE comment_approved = '0';"

en remplaçant :
_ DB_USER_NAME par le nom d'utilisateur de la base de données
_ DB_USER_PASSWORD par le mot de passe
_ DB_NAME par le nom de la base de données

On peut ainsi aussi supprimer les commentaires marqués comme indésirables ou les commentaires placés dans la corbeille en remplaçant :
_ comment_approved = '0' par comment_approved = 'spam'
ou
_ comment_approved = '0' par comment_approved = 'trash'

 

Il est bien sûr important de noter qu'une sauvegarde de base de données avant de faire ces opérations peut être une bonne règle de sécurité pour anticiper toute mauvaise manipulation.

BLOG COMMENTS POWERED BY DISQUS