WordPress dispose d’une fonctionnalité intéressante : la révision d’articles. Le soucis, c’est qu’avec son réglage par défaut, elle a tendance à faire grossir démesurément la base de données du blog… ce qui peut poser problème. Voyons cela de plus près.
A chaque fois que j’appuie sur le bouton de sauvegarde de mon article, WordPress enregistre l’état de celui-ci et le conserve ! A la longue, je dispose ainsi de toutes les versions de mes articles alors que seule la dernière est intéressante ( à priori) . Néanmoins, pour différentes raisons il peut arriver de vouloir revenir à une version précédente de sa prose… suite à une maladresse, une formulation qui finalement était « mieux avant » , etc ….d’où l’utilité de ces révisions.
L’idée est donc de demander à WordPress de ne conserver que par exemple les 3 ou 4 dernières versions de chacun des articles … cela devrait laisser une marge suffisante de retour en arrière sans pour autant submerger la base de données associée au blog.
Cela se réalise en saisissant le paramètre :
define('WP_POST_REVISIONS', 3);
dans le fichier wp-config.php que l’on trouve à la racine du dossier d’installation de WordPress.
Attention, pour que ce paramètre soit opérant, il faut qu’il soit placé avant les lignes indiquant le début des clefs d’authentification et de salage :
/**#@+ * Clefs uniques d'authentification et salage.
car dans le cas contraire, dans mon cas il était inopérant.
Ensuite, à chaque fois que vous revenez sur un article déjà écrit e que vous sauvegarderez, il effacera toutes les versions précédentes en n’en laissant que les 3 ou 4 dernières suivant votre paramètre…
Si comme dans mon cas, vous avez un très grands nombres d’articles déjà écrits, il n’est pas raisonnable de les repasser un par un, mais plutôt d’être plus radical en effacant à l’aide d’une requête SQL (par exemple dans PhpMyAdmin rubrique Requête SQL ) pour effacer toutes les révisions. Attention, faites une sauvegarde de votre base MySQL AVANT toute exécution de requête !!!
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’;
mais une autre requête est présente sur le web, permettant d’effacer des révisions antérieures à une certaine date :
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' AND a.post_date < '2010-01-01';
Je n’ai pas essayée cette dernière (avec date) qui apporte un peu de souplesse dans la sélection, mais le site sur lequel on la trouve (WordPressChannel) est un site particulièrement sérieux !
Pour ma part, j’ai économisé environ 45% d’espace d’occupation de ma base de données, et quelques latences sembles avoir disparues, et les sauvegardes sont plus rapides… gains appréciables surtout si vous l’utilisez sur un Nas, car son processeur sera nécessairement moins sollicité.