Es gibt keine Abfrage, die zu 100% sicher ist, dass alle nicht verwendeten Elemente gelöscht werden und diese nicht gelöscht werden, da jedes Thema oder Plugin der wp_options
Tabelle Optionen hinzufügen kann . Trotzdem können Sie mit ein wenig Aufwand eine ziemlich gute Vorstellung davon bekommen, was nicht verwendet wird, und dann manuell entscheiden, welche dieser Dinge gelöscht werden sollen und welche nicht.
Sie können den folgenden Code vorübergehend in die functions.php
Datei Ihres Themas einfügen und dann jede (Art von) Seite auf Ihrer öffentlich zugänglichen Site und vor allem alle Administrationsseiten in der Administratorkonsole besuchen. Sobald Sie dies getan haben, können Sie Ihre wp_options
Tabelle öffnen und das Feld use_count
(hinzugefügt durch den folgenden Code) überprüfen, um use_count
festzustellen, welche Optionen gleich Null sind (die Anzahl der Verwendungen ist meistens bedeutungslos, außer dass etwas größer als 1 gelesen oder aktualisiert wurde mindestens einmal, seit Sie diesen Code hinzugefügt haben.)
global $wpdb;
header('Content-Type:text/plain');
$results = $wpdb->get_results("SHOW COLUMNS FROM wp_options WHERE Field='use_count'");
if (count($results)==0) {
$wpdb->query("ALTER TABLE {$wpdb->options} ADD COLUMN use_count int UNSIGNED NOT NULL DEFAULT '0' AFTER autoload");
}
add_action('all','monitor_get_option_usage');
function monitor_get_option_usage($filter){
if (preg_match('#^option_(.*)$#',$filter)) {
increment_option_use_count(substr($filter,7));
}
}
add_action('updated_option','monitor_update_option_usage');
function monitor_update_option_usage($option){
increment_option_use_count($option);
}
function increment_option_use_count($option) {
global $wpdb;
$wpdb->query("UPDATE {$wpdb->options} SET use_count = use_count + 1 WHERE option_name = '$option'");
}
Auf diese Weise können Sie wahrscheinlich Optionen identifizieren, die mit längst vergangenen Plugins, früheren Themen und sogar eigenen Optionen verknüpft sind, die Sie frühzeitig hinzugefügt, aber nicht mehr verwendet haben. Exportieren Sie sie alle in ein Backup (nur für den Fall) und löschen Sie dann diejenigen, die Sie bequem löschen möchten. Sobald Sie fertig sind, können Sie das use_count
Feld entfernen (wenn Sie möchten, tut es nicht weh, wenn es dort ist) und auch den obigen Code aus Ihrer functions.php
Datei entfernen .
Obwohl dies immer noch nicht perfekt ist, ist es viel besser als nichts. Ich hoffe es hilft?