WordPress Quickie: Artikel Revisionen löschen

Da dieser Blog hier mit WordPress als Content Management System läuft, werden natürlich im Laufe der Zeit auch ein paar WordPress spezifische Tipps und Tricks hier landen. Mal zu eher fotospezifischen Themen, eventuell aber auch zu Themes oder zu WordPress selber. Heute habe ich einen kleinen Quickie für euch, bei dem es um die Revisionen geht, die WP automatisch oder bei jedem Zwischenspeichern von Artikeln anlegt.

WP speichert jedes Mal, wenn ihr auf “Speichern” klickt, eine Version (Revision) des Artikels ab. Je nachdem wie oft ihr bei einem Artikel zwischendurch auf “Speichern” klickt, kann die Anzahl der von WP angelegten Revisionen zu einem Artikel schon beträchtlich sein. Der Vorteil von diesem Vorgehen ist, dass ihr so jederzeit Zugriff auf alle alten Versionen eines Artikels habt. Der Nachteil ist, dass die Datenbank mit der Zeit zumüllt. Zum Aufräumen kann man sich nach Bedarf Plugins installieren. Unter Umständen geht es aber noch einfacher.

Zugriff auf die mySQL Datenbank?

Solltet ihr direkten Zugriff auf eure mySQL Datenbank haben, dann könnt ihr euch sehr simpel von allen alten Revisionen entledigen, ohne dass es hierzu Plugins braucht. Öffnet dazu z.B. das Programm “phpMyAdmin” bei eurem Provider und geht in die Sektion, in der ihr SQL Befehle direkt auslösen könnt.

Hier könnt ihr mit einem Löschbefehl nun alle Revisionen rausschmeissen, die in der Datenbak vorhanden sind. Revisionen sind wie Artikel selber in der Datenbanktabelle “wp_posts” gespeichert und daran zu erkennen, dass die Tabellenspalte “post_type” den Wert “revision” hat. Dementsprechend löscht man alle Revisionen aus der Datenbank durch folgenden Befehl:

DELETE FROM `wp_posts` WHERE `post_type` = "revision"

That’s it. Befehl bestätigen und eure Datendabk enthält keine Revisionen mehr. Ihr braucht keine Sorge zu haben, dass sich WordPress an den gelöschten Revisionen verschlucken würde. Für WP existieren nach dem Löschen in der Datenbank einfach keine Revisionen mehr und WP fängt wieder an, neue Revisionen beim Speichern von Artikeln anzulegen.

Nur Revisionen bestimmter Artikel oder Seiten in der Datenbank löschen

Ihr wollt nicht direkt Tabula rasa machen und alle Revisionen in der Datenbank löschen, sondern nur die eines oder mehrerer Artikel oder Seiten? Kein Problem. Dazu benötigt ihr die IDs der Artikel, von denen ihr die Revisionen löschen wollt. Geht dazu in die Admin-Sicht vom Blog und öffnet die Übersicht der Beiträge oder Seiten. Wenn ihr nun  mit der Maus über den Eintrag fahrt, dann wird in der Statuszeile des Browsers die ID im Link angezeigt:

Notiert euch die IDs der Beiträge, von denen ihr die Revisionen löschen wollt. Sollen dann z.B. die Revisionen des Artikels mit der ID 297 gelöscht werden, übergibt man folgenden Befehl an die Datenbank:

DELETE FROM `wp_posts` WHERE `post_parent` = 297 AND `post_type` = "revision"

Wollt ihr die Revisionen mehrerer Artikel löschen, beispielsweise der Artikel mit den IDs 14 und 297, dann lautet der Befehl dazu:

DELETE FROM `wp_posts` WHERE `post_parent` IN (14, 297) AND `post_type` = "revision"

That’s it again! Ich finde das sehr schnell und komfortabel.

Revisionen begrenzen oder ganz deaktivieren

In den Einstellungen von WordPress habt ihr über das Admin-Interface keine Möglichkeit, die Einstellungen für das Anlegen von Revisionen zu ändern oder Revisionen zu deaktivieren. Jedoch gibt es die Möglichkeit einzugreifen, solltet ihr Zugriff auf die Datei “wp-config.php” haben. Um mit Hilfe dieser Datei z.B. die Anzahl der maximalen Revisionen auf fünf Stück zu begrenzen, könnt ihr folgende Zeile einfügen:

define('WP_POST_REVISIONS', 5);

Wollt ihr die Revisionen in Zukunft ganz deaktivieren, so geht dies mit der Zeile:

define('WP_POST_REVISIONS', false);

Damit entledigt ihr euch vollständig der Revisionen. Ich selber bevorzuge aber die erste Version über das Löschen direkt in der Datenbank. Denn solange ich an einem Artikel schreibe, kann ich auf alle alten Revisionen zugreifen. Ist der Artikel schließlich online und ich mir sicher, dass er so bleibt, lösche ich alle Revisionen und hab die Datenbank wieder sauber. Ist ja nur ne kleine Zeile Code.

 

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.