Câu trả lời:
Không có truy vấn nào chắc chắn 100% để xóa mọi thứ không sử dụng và không xóa những thứ đó vì bất kỳ chủ đề hoặc plugin nào cũng có thể thêm tùy chọn vào wp_options
bảng. Tuy nhiên, với một chút nỗ lực, bạn có thể có được một ý tưởng khá hay về những thứ không được sử dụng và sau đó tự quyết định những thứ cần xóa và những thứ không nên xóa.
Bạn có thể tạm thời đặt đoạn mã sau vào functions.php
tệp của chủ đề và sau đó truy cập mọi trang (loại) trên trang web công khai của bạn và quan trọng hơn là tất cả các trang quản trị trong bảng điều khiển quản trị. Khi bạn đã hoàn tất, bạn có thể mở wp_options
bảng của mình và xem trường use_count
(được thêm bởi mã bên dưới) để xem tùy chọn nào có giá trị use_count
bằng 0 (số lượng sử dụng chủ yếu là vô nghĩa ngoài mọi thứ lớn hơn 1 đã được đọc hoặc cập nhật ít nhất một lần kể từ khi bạn thêm mã này.)
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'");
}
Với điều này, có lẽ bạn sẽ có thể xác định các tùy chọn được liên kết với các plugin đã có từ lâu, các chủ đề trước đây và thậm chí các tùy chọn của riêng bạn mà bạn đã thêm sớm nhưng không còn sử dụng. Xuất tất cả chúng vào một bản sao lưu (chỉ trong trường hợp) và sau đó xóa những cái bạn cảm thấy thoải mái khi xóa. Khi bạn đã hoàn tất, bạn có thể xóa use_count
trường này (nếu bạn muốn, không làm tổn thương đến nó ở đó) và cũng xóa mã ở trên khỏi functions.php
tệp của bạn .
Mặc dù điều này vẫn chưa hoàn hảo nhưng nó tốt hơn nhiều so với không có gì. Hy vọng nó giúp?
Plugin Clean Options đã hoạt động tốt với tôi. Mô tả của tác giả về plugin dường như phù hợp với những gì bạn cần: "Tìm các tùy chọn mồ côi và cho phép loại bỏ chúng khỏi bảng wp_options."
Tôi chưa từng thử WP-Optimize nhưng cá nhân tôi cũng có triển vọng. Và nó nói rằng nó hỗ trợ WP 2.7 (trong khi Clean Options chỉ đề cập đến hỗ trợ nhất định cho WP 2.3), thật tuyệt!
Điều này sẽ không nhất thiết phải loại bỏ các vấn đề với wp_options
nhưng tôi đã sử dụng WP-Optimize để khắc phục nhiều sự cố kích thước cơ sở dữ liệu trên các trang web 3.0 của mình. Nó xóa các sửa đổi bài viết không cần thiết, bình luận spam và có thể tự động khắc phục rất nhiều vấn đề. Trên blog chính của tôi, DB đã giảm từ 30MB xuống chỉ còn dưới 6 MB và bây giờ chạy trơn tru hơn nhiều.