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