it-swarm-vi.tech

Làm cách nào để xóa khóa mồ côi trong bảng cơ sở dữ liệu WordPress?

Cụ thể trong bảng wp_options. Sau gần 2 năm sản xuất blog, nó dường như tăng lên rất nhiều và tôi không biết có bao nhiêu thứ nhảm nhí trong đó.

Bạn có biết một plugin hoạt động với WordPress 3.0 hoặc truy vấn an toàn để chạy để tìm kiếm các khóa/hàng mồ côi không?

10
Drake

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ứ đó bởi vì bất kỳ chủ đề hoặc plugin nào cũng có thể thêm tùy chọn vào bảng wp_options. 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ứ nào sẽ xóa và những thứ không nên xóa.

Bạn có thể tạm thời đặt mã sau vào tệp functions.php của chủ đề rồi 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ị viên. Khi bạn đã hoàn tất, bạn có thể mở bảng wp_options 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ó use_count bằng 0 (số lượng sử dụng hầu như vô nghĩa so với bất kỳ thứ gì lớn hơn 1 đọ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 nữa. 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 trường use_count (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 tệp functions.php 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?

7
MikeSchinkel

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 thử Tối ưu hóa WP cá nhân, nhưng cái đó cũng có vẻ đầy hứa hẹn. Và nó nói rằng nó hỗ trợ WP 2.7 (trong khi Tùy chọn sạch chỉ đề cập đến hỗ trợ nhất định cho WP 2.3), Nice!

4
Mike Lee

Điều này sẽ không nhất thiết phải xóa các vấn đề với wp_options nhưng tôi đã sử dụng Tối ưu hóa WP để 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 tôi. Nó xóa các sửa đổi bài đăng 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.

2
EAMann

Tôi chạy cả Tùy chọn Sạch và WP_Optizing trên trang web của mình và kết hợp thực hiện công việc tuyệt vời là giữ cho cơ sở dữ liệu ở trạng thái tốt.

1
Keith S.