Risposte:
Non esiste una query che sarà sicura al 100% di eliminare tutto ciò che non viene utilizzato e di non eliminare tali elementi poiché qualsiasi tema o plug-in può aggiungere opzioni alla wp_options
tabella. Tuttavia, con un piccolo sforzo puoi avere una buona idea di cosa non è in uso e quindi decidere manualmente quale di queste cose eliminare e quali no.
Puoi inserire temporaneamente il seguente codice nel functions.php
file del tuo tema e quindi visitare ogni (tipo di) pagina del tuo sito pubblico e, soprattutto, tutte le pagine di amministrazione nella console di amministrazione. Una volta fatto, puoi aprire la tua wp_options
tabella e guardare il campo use_count
(aggiunto dal codice seguente) per vedere quali opzioni hanno un use_count
uguale a zero (il conteggio degli usi è per lo più insignificante diverso da qualsiasi cosa maggiore di 1 sia stata letta o aggiornata almeno una volta da quando hai aggiunto questo codice.)
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'");
}
Con questo probabilmente sarai in grado di identificare le opzioni associate a plugin ormai lontani, temi precedenti e persino le tue opzioni che hai aggiunto all'inizio ma che non usi più. Esportali tutti in un backup (per ogni evenienza), quindi elimina quelli che ti piace eliminare. Una volta che hai finito puoi rimuovere il use_count
campo (se vuoi, non fa male che sia lì) e anche rimuovere il codice sopra dal tuo functions.php
file.
Anche se questo non è ancora perfetto, è molto meglio di niente. Spero che sia d'aiuto?
Il plug-in Opzioni pulite ha funzionato bene per me. La descrizione dell'autore del plug-in sembra adattarsi a ciò di cui hai bisogno: "Trova le opzioni orfane e ne consente la rimozione dalla tabella wp_options".
Non ho ancora provato WP-Optimize personalmente, ma anche quello sembra promettente. E dice che supporta WP 2.7 (mentre Clean Options menziona solo un supporto definito per WP 2.3), bello!
Questo non rimuoverà necessariamente i problemi wp_options
ma ho usato WP-Optimize per risolvere molti problemi di dimensionamento del database sui miei siti 3.0. Elimina le revisioni di post non necessarie, i commenti di spam e può risolvere automaticamente molti problemi. Sul mio blog principale, il DB è stato ridotto da 30 MB a poco meno di 6 MB e ora funziona molto più agevolmente.