Depuis la version 2.6, WordPress effectue par défaut le suivi des révisions des articles publiés sur un site. En d’autres termes, toutes les versions successives d’un même article sont enregistrées dans la base de données.
En cas de suppression malencontreuse ou de mauvaise manipulation, on peut ainsi facilement revenir à une version antérieure de l’article. Une solution qui n’est évidemment pas sans rappeler le système de « versioning » mis en place sur Wikipédia.
Le hic, c’est que cela tend à gonfler la base de données à la longue, parfois même considérablement. En outre, lorsqu’on est le seul contributeur d’un blog, cette fonctionnalité peut paraître bien superflue. Alors, que faire pour désactiver le suivi des modifications d’articles dans WordPress ?
En fait, on peut annuler l’enregistrement des révisions. Malheureusement, il ne s’agit pas d’une option intégrée directement dans l’interface d’administration de WordPress (version 2.9.1 ou inférieure). Il faut modifier manuellement le fichier de configuration wp-config.php.
Voici les étapes à suivre:
- Récupérer sur votre PC le fichier wp-config.php qui se trouve dans le répertoire wordpress.
- Important: faire une copie de sécurité de ce fichier. On n’est jamais trop prudent !
- Ouvrir ce fichier avec un éditeur de texte, p.ex. le bloc-notes fourni en standard sur Windows.
- Ajouter l’instruction suivante juste avant la ligne intitulée /* C’est tout, ne touchez pas à ce qui suit ! Bon blogging ! */ :
define('WP_POST_REVISIONS',false); - Sauver le fichier.
- Le télécharger sur votre serveur dans le répertoire wordpress, à la place de l’ancien wp-config.php.
À noter que l’ajout de cette instruction dans votre fichier wp-config.php désactive le suivi des révisions mais elle n’efface pas les anciennes versions d’articles déjà enregistrées dans votre base de données.
Supprimer les anciennes versions d’articles
Réservé uniquement aux connaisseurs !
Il est possible de supprimer les révisions existantes d’articles via une requête MySQL mais ce n’est pas le genre de manipulation à effectuer à la légère.
Dans tous les cas, il est impératif d’avoir un backup valide de la base de données avant de se lancer dans ce genre d’aventures. Enfin, il est préférable de tester d’abord la manipulation sur une version locale avant de l’appliquer sur votre site en production.
Voici la requête à entrer dans phpMyAdmin ou une console MySQL pour effacer les révisions existantes:
DELETE p, pm, c, tr
FROM wp_posts AS p
LEFT JOIN wp_postmeta AS pm ON p.ID = pm.post_id
LEFT JOIN wp_comments AS c ON p.ID = c.comment_post_ID
LEFT JOIN wp_term_relationships AS tr ON p.ID = tr.object_id
WHERE p.post_type = 'revision';
Si vous avez modifié le préfixe par défaut des tables WordPress, ce qui est habituellement conseillé pour des raisons de sécurité, vous devez remplacer le préfixe wp dans la requête ci-dessus par votre préfixe.
Attention ! Contrairement à ce que certains sites web suggèrent, l’instruction suivante n’est pas strictement correcte, car elle ne supprime pas tous les éléments liés aux révisions d’articles, notamment les infos entrées dans les champ personnalisés ou custom fields: DELETE FROM wp_posts WHERE post_type = ‘revision’;
Dernière remarque: si vous supprimez les révisions existantes, je vous conseille ensuite d’optimiser votre base de données en exécutant la requête MySQL:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_term_relationships, wp_comments











