Im Artikel „WordPress beschleunigen – Revisionen einschränken“ habe ich bereits über die Problematik der duplizierten Artikel in der WordPress-Datenbank ausführlich berichtet. Auch habe ich Lösungsmöglichkeiten aufgezeigt, die Anzahl der Revisionen von vorneherein zu begrenzen.
Heute möchten wir Artikel löschen, die wir nicht mehr in der Datenbank benötigen. Hier bieten sich Plugins oder der manuelle Eingriff in die Datenbank an. Schauen wir uns zuerst den manuellen Weg an.
In der Tabelle „wp_posts“ sind für gewöhnlich alle Artikel und Revisionen gespeichert. Diese Tabelle kann je nach gewähltem Präfix auch einen anderen Namen haben. Wir gehen hier von einer Standardkonfiguration aus. In der Tabelle finden wir eine Spalte „post_type“. In diesem trägt WordPress den Status eines jeden Datensatzes ein. Jeder Artikel taucht hier je nach Revisionsanzahl mehrfach auf. Es sollte nur ein Datensatz mit dem „post_type=’post’“ geben. Der Eintrag „revision“ deutet auf eine Vorversion des Artikels hin. Datensätze mit dem Feldwert „attachment“ sind Upload-Elemente eines bestimmten Artikels.
Nun können wir alle Revisionen eines Artikels (oder alle Revisionen) löschen. Ich würde allerdings auf JEDEN FALL eine Sicherheitskopie der Datenbank anlegen, bevor ich die Datensätze lösche!!!!
Mit folgendem Befehl kann man sich ungeliebter Revisionen entledigen:
-- löscht alle Revisionen DELETE FROM wp_posts WHERE post_type = "revision";
Gegebenenfalls möchte man aber nur die Revisionen eines Artikels löschen. Wenn die ID des Artikels bekannt ist, kann ein einfacher SELECT alle Datensätze erst einmal anzeigen
SELECT * FROM wp_posts where post_parent=ID or id=ID
Wie wir im Bild sehen, zeigt dieser SELECT mein Impressum an. Insgesamt acht Einträge hat alleine das Impressum. Den aktuellen finalen Artikel (post_type=’page’), ein Bild (post_type=’attachment’) sowie sechs mal eine Revsions-Kopie. Um diese zu löschen, kann ich folgenden SQL-Befehl eingeben (ACHTUNG: Nutzung auf eigene Gefahr! Sicherheitskopie sinnvoll!):
DELETE FROM wp_posts WHERE post_type = "revision" AND post_parent=ID;
So können Sie also manuell sich unnötiger Artikel-Versionen entledigen. Wer der SQL-Sprache mächtig ist, kann diesen Weg jederzeit gehen. Sinnvoll ist es allemal, nicht benötigte Versionen zu löschen und die Datenbank davon zu entlasten. Besser und sicherer ist es jedoch, diese Arbeit über ein Plugin zu erledigen. Wie dies mittels dem WordPress Plugin “Delete Revision“ geschieht, können Sie hier nachlesen.