Answers:
没有任何查询可以确定要100%删除所有未使用的内容,而不删除这些内容,因为任何主题或插件都可以向wp_options
表中添加选项。尽管如此,您只需付出一点点努力就可以清楚地知道哪些未使用,然后手动确定哪些要删除,哪些不删除。
您可以将以下代码临时放入主题functions.php
文件中,然后访问面向公众的网站上的每个(类型)页面,更重要的是访问管理控制台中的所有管理页面。完成后,您可以打开wp_options
表并查看字段use_count
(由下面的代码添加)以查看哪些选项的use_count
值等于零(使用计数几乎没有意义,除了读取或更新的值大于1之外)自您添加此代码以来,至少有一次。)
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'");
}
使用此工具,您可能可以识别与已久的插件,以前的主题相关的选项,甚至是您早先添加但不再使用的自己的选项。将它们全部导出到备份中(以防万一),然后删除您愿意删除的那些。完成操作后,您可以删除该use_count
字段(如果需要的话,也可以保留该字段),也可以从functions.php
文件中删除上面的代码。
尽管这仍然不完美,但总比没有好。希望能帮助到你?
清洁选项插件对我来说效果很好。作者对该插件的描述似乎符合您的需求:“查找孤立的选项,并允许将其从wp_options表中删除。”
我还没有亲自尝试过WP-Optimize,但是那看起来也很有希望。它说它支持WP 2.7(而“干净选项”仅提及对WP 2.3的明确支持),太好了!
这不一定能消除与的问题,wp_options
但我已经使用WP-Optimize在我的3.0站点上解决了许多数据库大小调整问题。它清除不需要的帖子修订,垃圾评论,并可以自动解决很多问题。在我的主博客上,数据库从30MB减少到6MB以下,并且现在运行起来更加流畅。