WordPress Datenbank manuell bearbeiten

WordPress verwaltet so ziemlich alles in einer Datenbank. Egal ob Settings, Artikel, Kommentare usw. Dabei legt WordPress auch allerlei “Mist” an. So enthält dieser Blog bereits über 70 Einträge in der wp_posts Tabelle, obwohl der Blog nur gerade mal 2 Beiträge hat. WP sieht hier keine Aufräummöglichkeit vor. Man kann aber händisch so manches erledigen. So kann man üblicherweise die Größe der Datenbank auf einen Bruchteil reduzieren, was Performance und Speicherplatz bringt. Aber auch die Administration ist teilweise direkt in der Datenbank deutlich schneller erledigt. Hier die besten DB-Queries für WordPress Blogger.

Zuerst sollte man mal ein Backup seiner Datenbank anlegen. Jede Aktion direkt an der Datenbank kann WordPress lahm legen. Also alle Tipps hier auf eigene Verantwortung. Dann geht man am einfachsten über eine Admin Oberfläche wie phpMyAdmin zur Datenbank. Hier lassen sich SQL Befehle eingeben…

Unnötige Posts aufräumen

Zuerst nehmen wir uns mal die eingangs erwähnten doppelten Posts vor. Jedes Mal, wenn ein Artikel gespeichert wird legt WP einen neuen Tabelleneintrag an. Erfreulicherweise kann man die alten Einträge einfach löschen, weil WP diese nicht mehr benötigt. Man hat aber natürlich damit auch keinen Zugriff mehr auf alte Versionen des Beitrags. Am einfachsten ist es alle Posts zu löschen, die nicht den post_status publish oder draft besitzen. Das sind Autosicherungen, Revisionen, alte Versionen usw. Posts die aktuell am Blog sichtbar sind haben den Status publish. Will man seine Entwürfe aufheben muss man eben auch noch die “drafts” behalten. Ausserdem “retten” wir die Attachments. Diese werden ebenfalls als “Posts” gespeichert. Würde man diese löschen, würde das den Blog nicht beeinflussen, aber in der Mediathek sind die Attachements dann nicht mehr verfügbar.

Zing. Schon hat man nur noch einen Bruchteil der Einträge in der wp_posts. Will man die jüngeren Revisionen noch aufheben, so kann man noch ein Zeitlimit einbauen. z.B.

So bleiben alle Versionen von Artikeln gespeichert, die jünger als 30 Tage sind.

Dann sollte man noch Daten die zu den gelöschten Posts gehört haben wegwerfen. Zuerst alle “postmetas” löschen, die keinen zugehörigen Post mehr besitzen.

Dann gehören noch die term_relationships gelöscht, die auf verwaiste Posts zeigen.

 

Kommentare aufräumen

Weiter mit den Kommentaren. Hier sammeln sich bei spamgeplagten Blogs Unmengen an Einträgen. Ansatzpunkt bietet hier am ehesten die Spalte “comment_approved”. Hier gibt es die Werte 1 (genehmigt), 0 (nicht genehmigt), spam, post_trashed und trash. Am einfachsten ist es also die Kommentare in der Warteschlange abzuarbeiten (In der Admin Area) und dann alle Kommentare zu löschen, die nicht “approved” sind. Somit werden alle Spam Kommentare, alle nicht genehmigten Kommentare und alle Kommentare deren Post gelöscht wurde aus der DB gelöscht.

Hauptgrund für Kommentarspam ist natürlich das Backlinking. Der “Kommentator” trägt eine Webpage als seine Webpage ein und erhält so einen Backlink. Will man eine bestimmte Seite nicht verlinken, so kann man entweder Kommentare löschen, die eine bestimmte Webadresse eingetragen haben.

Der “LIKE” Suchstring bietet sich an, weil so auch alle Unterseiten, Subdomains etc. erwischt werden. Gibt es Antworten auf den gelöschten Beitrag (was bei Spameinträgen eher selten der Fall ist), werden diese trotzdem einfach angezeigt.

Alternative ist es die Urls einfach zu löschen und den Kommentar stehen zu lassen.

Zu den Kommentaren gehört auch die Tabelle wp_commentmeta. Probleme kann diese Tabelle bei der Anwendung von alten Askimet Plugins machen. Hier werden verwaiste Einträge nicht gelöscht, so soll es Blogs geben bei denen diese Tabelle mehrere hundert MB bekommen hat. Es macht auf jeden Fall Sinn alle Metas zu löschen, zu denen es keinen Kommentar mehr gibt.

Askimet legt commentmetas an, die nicht wirklich brauchbar sind. Auch diese füllen die DB relativ rasch mit Daten. Also werfen wir noch alle askimet Einträge raus.

Will man in Zukunft etwas weniger mit Spam gequält werden, so kann man einfach die Kommentarfunktion für ältere Posts sperren.

 

Tags aufräumen

Durch löschen von Posts etc. gibt es im Laufe der Zeit viele verwaiste Tags in der term Datenbank. Diese kann man aufräumen. Der Performancevorteil wird begrenzt sein, aber unangehm ist es wenn Tags, die gar nicht in Verwendung sind bei Tagclouds etc. erscheinen. Ein Klick darauf führt dann auf eine 404 Seite. Unschön, also weg mit den unbenützten Tags.

 

Administration in der Datenbank

Manche Sachen lassen sich über die WP-Administration gar nicht durchführen, manche nur sehr langwierig, die richtige Quert parat haben ist da Gold wert…

Passwort “recovern”

Passwort futsch? Kein Problem:

Artikel anderem User zuteilen

Vermutlich kennt jeder WordPress Blogger das Problem. Man beginnt voller Enthusiasmus mit dem Bloggen und irgendwann stellt man dann fest, dass “Admin” als Bloggername wenig sexy ist. Also legt man einen neuen User an, aber wie die alten Artikel alle dem neuen User zuordnen? Such dir zuerst in der Tabelle wp_users die IDs der beiden User (alter User, neuer User). Dann führe folgende Quert aus.

Alternativ kannst du auch einfach den Namen des alten Users ändern. Die hat allerdings den Nachteil, dass du immer als “Admin” postest und dein Zugang Administartionsrechte besitzt. Nicht jeder möchte diese Sicherheitslücke.

 

 

«  -  »

Senf dazugeben

*