问题描述
特别是在表 wp_options
中。经过近 2 年的博客制作,似乎增加了很多,而且我不知道那里有多少垃圾。
你知道一个适用于 WordPress 3.0 或安全查询的插件来运行搜索孤儿键/行吗?
最佳解决方案
没有任何查询将被 100%肯定删除所有未使用的东西,而不是删除这些东西,因为任何主题或插件可以添加到 wp_options
表的选项。不过,有一点努力,你可以得到一个很好的想法,什么没有使用,然后手动决定哪些东西要删除,哪些不是。
您可以将以下代码暂时放入主题的 functions.php
文件中,然后访问 public-facing 站点上的每个 (类型) 页面,更重要的是访问管理控制台中的所有管理页面。一旦你这样做,你可以打开你的 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
文件也删除上面的代码。
虽然这还不完美,但没有什么好处。希望有帮助吗
次佳解决方案
插件 Clean Options 对我来说很好。作者对插件的描述似乎适合您所需要的:「查找孤立的选项,并允许从 wp_options 表中删除它们。
我还没有亲自试过 WP-Optimize,但是那个人看起来也很有前途。它说它支持 WP 2.7(而 Clean 选项只提到对 WP 2.3 的一定支持),很好!
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。