Respostas:
Não há nenhuma consulta que tenha 100% de certeza de excluir tudo que não foi usado e não excluir essas coisas porque qualquer tema ou plug-in pode adicionar opções à wp_options
tabela. Ainda assim, com um pouco de esforço, você pode ter uma boa idéia do que não está em uso e depois decidir manualmente quais dessas coisas excluir e quais não.
Você pode inserir temporariamente o seguinte código no functions.php
arquivo do seu tema e, em seguida, visitar todas as (tipo de) páginas do site público e, mais importante, todas as páginas de administração no console de administração. Depois de fazer isso, você pode abrir sua wp_options
tabela e olhar para o campo use_count
(adicionado pelo código abaixo) para ver quais opções têm um valor use_count
igual a zero (a contagem de uso não tem sentido, a menos que algo maior que 1 tenha sido lido ou atualizado 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 poderá identificar opções que estão associadas a plugins antigos, temas anteriores e até opções próprias que você adicionou cedo, mas não usa mais. Exporte todos eles para um backup (apenas no caso) e exclua os que você deseja excluir. Quando terminar, você pode remover o use_count
campo (se quiser, não faz mal estar lá) e também remover o código acima do seu functions.php
arquivo também.
Embora isso ainda não seja perfeito, é muito melhor que nada. Espero que ajude?
O plugin Clean Options funcionou bem para mim. A descrição do autor do plug-in parece se adequar ao que você precisa: "Encontra opções órfãs e permite a remoção da tabela wp_options".
Ainda não testei o WP-Optimize pessoalmente, mas esse também parece promissor. E ele diz que suporta o WP 2.7 (enquanto as Opções limpas mencionam apenas o suporte definitivo ao WP 2.3), bom!
Isso não necessariamente removerá problemas, wp_options
mas eu usei o WP-Optimize para corrigir muitos problemas de dimensionamento de banco de dados em meus sites 3.0. Ele elimina revisões de postagem desnecessárias, comentários de spam e pode corrigir automaticamente muitos problemas. No meu blog principal, o banco de dados foi reduzido de 30 MB para pouco menos de 6 MB e funciona muito mais facilmente agora.