Não há nenhuma consulta que seja 100% certa para excluir tudo que não for usado e não excluir essas coisas, pois qualquer tema ou plug-in pode adicionar opções à tabela wp_options
. Ainda assim, com um pouco de esforço, você pode ter uma boa idéia do que não está em uso e, em seguida, decidir manualmente quais dessas coisas excluir e quais não.
Você pode colocar o código a seguir temporariamente no arquivo functions.php
do seu tema e, em seguida, visitar cada página (tipo de) em seu site público e, mais importante, todas as páginas de administração no Admin Console. Uma vez feito isso, você pode abrir sua tabela wp_options
e olhar para o campo use_count
(adicionado pelo código abaixo) para ver quais opções têm use_count
igual a zero (a contagem de uso é basicamente sem sentido qualquer coisa maior que 1 foi lida ou atualizada pelo menos uma vez desde que você adicionou este código.)
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'");
}
Com isso, você provavelmente será capaz de identificar opções associadas a plugins antigos, antigos temas e até mesmo opções próprias adicionadas anteriormente, mas que não são mais usadas. Exporte-os todos para um backup (apenas no caso) e, em seguida, exclua os que você está confortável excluindo. Quando estiver pronto, você pode remover o campo use_count
(se você quiser, não faz mal se ele estiver lá) e também remover o código acima do seu arquivo functions.php
também.
Embora isso ainda não seja perfeito, é muito melhor que nada. Espero que ajude?