Dans la base de données WORDPRESS il y a beaucoup d’informations qui sont stockées et si vous maintenez votre site depuis quelques années et si vous n’êtes pas le seul à le faire, il y a des chances que votre base de données alourdis votre site ou vous crée des problèmes de compatibilités ou d’affichages.
L’utilisation de requêtes SQL pour nettoyer votre base de données est une solution qui est destiné à un public averti et qui sait exactement comment manipuler la base de données pour ne pas créer de problèmes ou de bugs majeurs.
Dans cet article, nous avons compilés un petit guide de 15 requêtes prêtes à être utilisées dans divers tables.
Comment faire ?
PhpMyAdmin
La méthode adéquate qu’on conseille est d’utiliser le PhpMyAdmin de votre hébergeur et d’accéder à votre base et à l’onglet « SQL » pour exécuter l’une ou l’ensemble de ces requêtes.
Plugin WP PhpMyAdmin
Comme son nom l’indique le but de ce plugin est de vous permettre d’exécuter de reproduire l’environnement PhpMyadmin dans votre interface d’administration du site WordPress et d’exécuter des requêtes SQL sur votre base de données de l’intérieur du tableau de bord.
Avant de commencer
Des choses importantes à savoir et noter :
- Toujours avoir une sauvegarde fraîche de votre base de données (le mieux est de la faire juste avant d’essayer d’exécuter ces requêtes). Vous pouvez faire cette sauvegarde manuellement depuis PhpMyAdmin (fonction Exporter) ou utiliser un plugin WordPress tels que WP-BManager.
- Si vous avez une version de votre site et de votre base de données en locale, le mieux est de faire des essais en locale pour voir l’étendu de ces requêtes avant de les exécuter sur le serveur en production.
- Dans cet article et dans les requêtes on utilise par défaut le préfixe de table « wp_ ». Assurez-vous que vous modifiez les préfixes pour correspondre à ceux utilisés par votre base de données.
Supprimer tous les commentaires d’une URL spécifique
Personne n’aime les commentaires SPAM, alors supprimons les !
DELETE from wp_comments WHERE comment_author_url LIKE "%spamurl%" ;
Supprimer tous les trackbacks
Si vous pensez que les trackbacks ne servent à rien, il faut les supprimer
DELETE FROM wp_comments WHERE comment_type="trackback";
Fermer trackbacks sur tous les messages à la fois
Mieux encore, ne pas permettre de faire des trackbacks …
UPDATE wp_posts SET ping_status = 'closed';
Supprimer tous les commentaires non approuvés
Trop paresseux pour vérifier l’ensemble de vos commentaires non approuvés ? Ceci est la façon la plus rapide pour les supprimer tous à la fois.
DELETE from wp_comments WHERE comment_approved = '0';
Supprimer tous les commentaires marqués comme spam
Vous avez 5400 commentaires marqués comme spam ? Cette requête est pour vous.
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
Supprimer toutes les révisions d’articles et les données associées
WORDPRESS est paramétré pour faire des sauvegardes temporaires qu’il appelle révision pour ne pas perdre vos données en cas de coupure Internet ou d’autres problèmes mais ces révision prennent beaucoup d’espaces.
Rendre votre base de données légère, en enlevant les révisions d’articles et toutes les données associées. Une requête qu’on utilise tous les 3-6 mois.
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';
Supprimer les très vieux messages
Voici un moyen facile d’enlever les très vieux messages mais attention vous devez absolument utiliser la redirections 301 pour rediriger les messages supprimés dans votre page d’accueil ou des versions actualisées de ces postes.
DELETE FROM wp_posts WHERE post_date < '2010-01-01 00:00:00' AND post_status = 'publish'
Obtenez une liste des e-mails de tous les commentateurs
Vous pouvez récupérer les adresses emails de ceux qui ont postés un commentaire sur vos articles (avec leur consentement). Voici le moyen d’obtenir une liste de tous les e-mails stockés dans la table wp_comments
. Notez l’utilisation de DISTINCT
pour ne pas avoir de doublons.
SELECT DISTINCT comment_author_email FROM wp_comments;
Attribuer des articles à un nouvel auteur
Si pour une raison quelconque vous souhaitez transférer des articles d’un auteur vers un autre, cette requête vous sera utile. Vous devez bien sûr mettre à jour la requête avec les bon ID des auteurs avant de l’exécuter.
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';
Mettre à jour le mot de passe d’un utilisateur
Un moyen rapide de mettre à jour un mot de passe. Ne pas oublier de remplacer username
par le nom d’utilisateur de l’utilisateur que vous souhaitez mettre à jour.
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'username';
Désactiver tous les plugins
Si vous rencontrer un problème sur votre Blog, il peut être utile de désactiver tous vos plugins, au cas où l’un d’entre eux était la source du problème.
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';
Débarrassez-vous des étiquettes (tags) inutilisées
A un certain moment les étiquettes (tags) étaient à la mode et aident au référencement mais plus maintenant. Vous allez donc pouvoir supprimer les étiquettes que vous n’utilisez pas.
DELETE 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;
Conclusion
Il est toujours utilise de faire de la maintenance et de l’optimisation de votre site pour ne pas avoir de mauvaises surprises. Le nettoyage de la base de données WORDPRESS est une étape, mais il est aussi conseillé par exemple d’optimiser les images de votre site, déjà pour gagner en espace disque, ensuite pour améliorer le temps de chargement de votre site.
Et vous ? Est ce que vous-avez votre petite requête SQL qui peut servir dans vos tâches quotidiens ?