Ответы:
Нет запроса, который будет на 100% уверен, что удалит все неиспользованное и не удалит эти вещи, потому что любая тема или плагин может добавить опции в wp_options
таблицу. Тем не менее, с небольшими усилиями вы можете получить довольно хорошее представление о том, что не используется, а затем вручную решить, какие из этих вещей удалить, а какие нет.
Вы можете временно поместить следующий код в functions.php
файл вашей темы, а затем посетить каждую (тип) страницу вашего общедоступного сайта и, что более важно, все страницы администратора в консоли администратора. Как только вы это сделаете, вы можете открыть свою 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 Options упоминает только определенную поддержку WP 2.3), приятно!
Это не обязательно устранит проблемы, wp_options
но я использовал WP-Optimize для решения многих проблем с размером баз данных на моих сайтах 3.0. Он очищает ненужные публикации сообщений, спам-комментарии и может автоматически решить множество проблем. В моем главном блоге размер базы данных уменьшился с 30 МБ до чуть менее 6 МБ, и теперь она работает намного более плавно.