WordPress DB bereinigen

Bild: Topher bei WordPress
Bild: Topher bei WordPress

Standardmäßig wird in WordPress beim Erstellen oder Ändern eines Artikels oder Seite in der Datenbank die Meta-Keys _edit_last und _edit_lock erstellt. Der Schlüssel _edit_lock hilft dabei die Kontrolle über den Beitrag zu behalten. Nützlich ist dies wenn die Website von mehreren Nutzern gepflegt wird. Der Eintrag _edit_last speichert den Zeitpunkt der letzten Bearbeitung. In der Datenbank sammeln sich durch diese Angaben jede Menge Einträge die für mich, da ich den Blog alleine nutze, sinnlos sind.

Ich habe lange gesucht bis ich ein für mich nützliches Codeschnipsel gefunden habe dass dieses Problem löst. Die Seite blog.webentwicklerin.at liefert die passenden Codezeilen. Der Code nutzt Funktion delete_metadata um die oben genannten Meta-Keys aus der Tabelle „wp_postmeta“ zu löschen. Die Meta-Keys werden beim Abmelden aus dem WordPress Backend gelöscht.

function delete_meta_keys() {	
  $fields = array( 
    '_edit_last',
    '_edit_lock'
  );

  foreach( $fields as $field ) {
    delete_metadata( 'post', 0, $field, false, true );
  }
} 
add_action( 'wp_logout', 'delete_meta_keys' );

Wichtig: Vorraussetzung um solch eine Funktion zu nutzen ist zu wissen was man tut und welche Konsequenzen ein Fehler dabei hat. Es ist wichtig beim Arbeiten an der Datenbank immer vorher ein Backup zu machen. Sind die Daten erst mal gelöscht, gibt es kein Zurück mehr!!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.