問題描述
特別是在表 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。