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!!