Depuis la version 2.6 de WordPress, la fonction Post Revisions permet de conserver les versions successives d’un billet. C’est pratique mais à la longue, c’est encombrant. Je n’ai fait appel à cette fonction qu’une ou deux fois et comme j’ai tendance à modifier mes billets assez souvent (j’utilise le bouton Save Draft en cours de rédaction ou Update Post lors des corrections ultérieures), en quelques mois, j’ai eu jusqu’à 113 Post Revisions pour un total de 320 billets… Il est temps de faire le ménage !
Mais avant de modifier la base de données, je vous conseille d’en faire un backup. Pour cela, plusieurs solutions s’offrent à vous :
5 solutions pour sauvergarder votre BDD
- Utiliser la fonction Export intégrée à WordPress pour obtenir un fichier XML sans les liens de votre blogroll préférée (d’ou la pauvreté de la mienne à ce jour) et sans toutes les tables ajoutées par les plugins que vous avez installés. Autant dire que cette option est à réserver lorsqu’on remet son blog à plat.
- Installer un plugin dédié à cette tâche comme WordPress Database Backup qui va sauvegarder les tables selon votre bon vouloir. Notez que ce plugin permet de ne pas enregistrer les commentaires considérés comme du spam dans la table
wp_comments
et d’exclure les Post Revisions de la tablewp-posts
. Dans le même genre, wp-dbmanager offre un menu étoffé pour effectuer des opérations de maintenance de votre base de données sans quitter WordPress ! - Profiter des fonctions de votre hébergeur préféré qui devrait permettre de faire des sauvegardes quotidiennes de l’ensemble de vos bases : les fichiers compressés seront probablement enregistrés à la racine de votre hébergement.
- Trouver le lien Exporter dans phpMyAdmin puis cliquer sur Transmettre pour sauvegarder votre base sur votre poste de travail ou obtenir un joli fichier texte si vous laissez les choses en l’état. Enfin, vous pouvez cliquer sur Exécuter.
- Enfin, pour les Jedi, il reste la ligne de commande comme
mysql -h host -u user -ppass base_de_donnees > fichier_dump
— Plus d’information sur aidenet.
Opération Search & Destroy avec Delete Revisions
Une fois la BDD à l’abrit, faites intervenir l’excellent Delete-Revision commis par gohsy. Ce plugin va simplement dégraisser la base de données et lui redonner une deuxième jeunesse en supprimant toutes les révisions redondantes. Comme ça, d’un seul clic. Je l’ai mis en place sur ce blog et tout à l’air de fonctionner correctement.
Le coup de la constante WP_POST_REVISIONS
Il est possible de se prémunir une fois pour toutes de ces révisions intempestives en ajoutant une constante dans le fichier wp-config.php situé à la racine du blog :
define(‘WP_POST_REVISIONS’, false);
Et en la plaçant juste avant le commentaire :
/* That’s all, stop editing! Happy blogging. */
Dans le même esprit, il est possible de ne conserver qu’un nombre définit de révisions avec la ligne (ici 3) :
define(‘WP_POST_REVISIONS’, 3);
Le coup de la requête SQL DELETE
Si vous n’avez pas ajouté WP_POST_REVISIONS
dès l’installation de votre blog, il faudra supprimer les révisions existantes. Pour cela, cette requête SQL — à copier-coller dans le champs phpMyAdmin qui va bien — est votre amie :
DELETE FROM wp_posts WHERE post_type = ‘revision’;
Plus d’information sur Comment désactiver le suivi des versions sous WordPress 2.6 chez Korben et Malaiac qui nous offre une page consacrée à l’optimisation pour WordPress.
Quelques pistes pour optimiser WordPress
Supprimer les Post Revisions, c’est bien, mais pourquoi s’arrêter en si bon chemin alors que le réseau regorge de liens plus intéressants les uns que les autres ?
Profitons-en pour profiler notre outil de blog comme une voiture de course :
Merci pour ce condensé d’information qui me semble assez complet.
En ce qui me concerne, je trouve que l’ajout de cette nouvelle fonctionnalité dans WP n’a pas été assez pensée et que l’armée d’extensions (j’exagère un peu) nécessaires pour les gérer convenablement en est l’illustration.
L’activation des révisions, leur limitation, leur purge, tout cela devrait faire partie du cœur de WP.
Je n’ose pas imaginer les mégaoctets de base de données gâchées, depuis la mise en place de cette fonction, au sein des nombreux sites WP tenus par des blogueurs peu versés dans la technique.
Attention dans la requête SQL pour effacer les révisions il faut mettre des guillemets simples et non-doubles pour encadrer la chaine de caractères sous peine d’avoir une erreur de syntaxe ..
DELETE FROM wp_posts WHERE post_type = ‘revision’;
De mon côté, malgré l’ajout de « define(‘WP_POST_REVISIONS’, false); » dans mon fichier de config, les révisions continuent de se créer. Etrange …
Il y a WP-Optimize, qui permet de supprimer les posts revisions et d’optimiser les tables en un seul clic –> http://wordpress.org/extend/plugins/wp-optimize
Pour ma part, je pense que désactiver les posts revisions n’est pas nécessaire. Le jour où vous avez besoin d’une ancienne version d’un article pour éviter de vous retaper l’écriture de celui-ci, vous remercierez WordPress d’avoir intégré cette option 🙂
Autant supprimer les posts revisions, une fois par mois, ou une fois par semaine.
Excellent Bruno, très complet, nickel! Enfin, c’est une constance chez toi les bons articles.
Good job!
Bonjour,
J’avoue être totalement passé à côté de ce blog jusqu’ici (sans doute le titre, trop orienté « cambouis » pour moi !) : Et bien c’est une mine d’infos très utiles. Bravo pour le boulot.