Um besser gegen Browserabstürze und Verbindungsabbrüche gewappnet zu sein, verfügt WordPress seit Version 2.6 über eine automatische Speicherfunktion sowie ein automatisches Revisionsmanagement.
Wie der WordPress Codex erklärt, wurden zwar entsprechende Optionen zum an- bzw. ausschalten des Revisionsmanagements integriert und es existieren auch API-Funktionen zum Aufräumen, diese wurden jedoch nicht in die Oberfläche integriert.
Im normalen Betrieb macht sich das Revisionsmanagement besonders durch eine stetig und schnell wachsende Datenbank bemerkbar - alleine vom Artikel “My Book Essential – virtuelles CD-Rom loswerden” finden sich nach Veröffentlichung ingesamt neun Revisionen.
Wer das Revisionsmanagement nicht benötigt, kann dieses - am besten noch vor Erstellen des ersten Artikels - mittels der Option ‘WP_POST_REVISIONS’ in der Datei ‘wp-config.php’ abschalten:
define('WP_POST_REVISIONS', false);
Wer bereits mit eingeschaltetem Revisionsmanagement gearbeitet hat, sollte nach dem Abschalten die Datenbank aufäumen.
Die Revisionen sind - genau wie die “richtigen” Artikel in der Tabelle ‘wp_posts’ abgelegt und durch den post_status = ‘inherit’ sowie post_type = ‘revision’ gekennzeichnet. Einen Überblick über deren Anzahl verschafft das SQL-Statement
SELECT COUNT(*) FROM wp_posts WHERE post_status='inherit' AND post_type = 'revision';
Bevor es an das Löschen der Revisionen geht, sollte allerdings noch ein Blick auf die Tabellen ‘wp_postmeta’ sowie ‘wp_term_relationships’ geworfen werden, um hier keine Karteileichen zurückzulassen.
SELECT COUNT(*) FROM wp_posts, wp_postmeta
WHERE ID=post_id AND post_status='inherit' AND post_type = 'revision';
SELECT COUNT(*) FROM wp_posts, wp_term_relationships
WHERE ID=object_id AND post_status='inherit' AND post_type = 'revision';
Anschließend können - nach einer eventuellen Bereinigung der oben genannten Tabellen - die vorhandenen Revisionen entsorgt werden:
DELETE FROM wp_posts WHERE post_status='inherit' AND post_type = 'revision';