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?
Das Plugin Clean Options hat bei mir gut funktioniert. Die Beschreibung des Plugins durch den Autor scheint genau zu Ihren Anforderungen zu passen: "Findet verwaiste Optionen und ermöglicht deren Entfernung aus der Tabelle wp_options."
Ich habe WP-Optimize noch nicht persönlich ausprobiert , aber das sieht auch vielversprechend aus. Und es heißt, dass es WP 2.7 unterstützt (während Clean Options nur die definitive Unterstützung für WP 2.3 erwähnt), schön!
quelle
Dies wird nicht unbedingt Probleme mit beseitigen,
wp_options
aber ich habe WP-Optimize verwendet , um viele Probleme mit der Datenbankgröße auf meinen 3.0-Sites zu beheben. Es löscht nicht benötigte Post-Revisionen, Spam-Kommentare und kann viele Probleme automatisch beheben. In meinem Hauptblog wurde die Datenbank von 30 MB auf knapp 6 MB reduziert und läuft jetzt viel reibungsloser.quelle
Ich führe sowohl Clean Options als auch WP_Optimize auf meiner Site aus, und die Combo leistet hervorragende Arbeit, um die Datenbank in hervorragendem Zustand zu halten.
quelle