WordPress Datenbank bereinigen

Ja, ich weiß, es gibt jede Menge Plugins, die die WordPress Datenbank bereinigen. Es geht aber ohne. Nachfolgender Code für die functions.php eines Child-Themes löscht aus der Tabelle „wp_posts“ „auto-draft“, „Custom Styles“ und „Revision“. Aus der Tabelle „wp_postmeta“ werden „oembed“, „edit_last“, „edit_lock“, „wp_old_date“ und „wp_old_slug“ gelöscht. Diese Aktion erfolgt, mithilfe eines Transienten, automatisch alle 14 Tage.

/**
 * Datenbank bereinigen
 * --------------------
 * löscht einige Einträge aus der SQL Post- und Post-Meta-Tabelle
 */

function wp_delete_autodraft() {
    global $wpdb;
 
    $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft'" );
    foreach ( (array) $old_posts as $delete ) {
        wp_delete_post( $delete, true );
    }
}

function wp_delete_customstyles() {
    global $wpdb;
 
    $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_title = 'Custom Styles'" );
    foreach ( (array) $old_posts as $delete ) {
        wp_delete_post( $delete, true );
    }
}

function wp_delete_revision() {
    global $wpdb;
 
    $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type = 'Revision'" );
    foreach ( (array) $old_posts as $delete ) {
        wp_delete_post( $delete, true );
    }
}

function wp_delete_oembed() {
    global $wpdb;
 
    $old_posts = $wpdb->get_col( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key LIKE '%_oembed_%'" );
    foreach ( (array) $old_posts as $delete ) {
        wp_delete_post( $delete, true );
    }
}

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

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

if ( is_admin() ) {
  if ( ! get_transient( 'clean_db_timer' ) && get_transient( 'optimized_db_timer' ) ) {
    set_transient( 'clean_db_timer', wp_date( "d.m.y H:i" ), 60 * 60 * 24 * 14 );
    add_action( 'admin_init', 'wp_delete_autodraft' );
    add_action( 'admin_init', 'wp_delete_customstyles' );
    add_action( 'admin_init', 'wp_delete_revision' );
    add_action( 'admin_init', 'wp_delete_oembed' );
    add_action( 'admin_init', 'delete_meta_keys' );
  }
} 

Man kann natürlich geteilter Meinung sein, was diese Einträge in der Datenbank-Tabelle angeht. Ich finde, es ist überflüssiger Ballast. Bei mir ist bis jetzt die Datenbank heil geblieben. Falls ihr diesen Code nutzt, dann auf eigene Gefahr.