Ревизии записей WordPress — это полезная функция, которая позволяет сохранять версии ваших постов и страниц, чтобы можно было откатиться к предыдущим версиям. Однако со временем количество ревизий может значительно увеличиться, что замедляет работу сайта и раздувает базу данных. В этой статье подробно разберём, как эффективно удалить ревизии записей без использования плагинов, используя SQL-запросы и кастомные функции WordPress.
Что такое ревизии в WordPress и почему их нужно удалять
Ревизии — это автоматические или ручные сохранения изменений в записях. Каждый раз, когда вы сохраняете или обновляете запись, WordPress создаёт новую ревизию. Со временем это может привести к тому, что в таблице wp_posts окажется сотни или тысячи ненужных ревизий, которые занимают место и замедляют запросы к базе данных.
Удаление ревизий помогает:
- Сократить размер базы данных.
- Ускорить работу административной панели.
- Снизить нагрузку на хостинг.
Но важно понимать, что удаление всех ревизий — это необратимый процесс, и вы потеряете возможность откатиться к предыдущим версиям записей.
Как удалить ревизии с помощью SQL-запроса
Самый быстрый способ очистить базу данных от ревизий — выполнить простой SQL-запрос через phpMyAdmin или другой инструмент управления базами данных.
Запрос для удаления всех ревизий записей:
DELETE FROM wp_posts WHERE post_type = 'revision';Этот запрос удалит все записи с типом revision. Чтобы выполнить его:
- Зайдите в phpMyAdmin вашего хостинга.
- Выберите базу данных вашего сайта.
- Перейдите на вкладку SQL.
- Вставьте запрос и нажмите "Выполнить".
Однако будьте осторожны: если у вас нестандартный префикс таблиц, замените wp_ на ваш собственный.
Удаление ревизий по ограничению даты
Если вы хотите удалить только старые ревизии, например, старше 30 дней, можно использовать такой запрос:
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_date < NOW() - INTERVAL 30 DAY;Это поможет сохранить свежие версии, но очистить базу от устаревших.
Функция WordPress для удаления ревизий
Если вы предпочитаете удалять ревизии программно через тему или плагин, можно создать кастомную функцию с использованием WPDB:
function wpset_delete_post_revisions() {
global $wpdb;
$deleted = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
return $deleted;
}Эту функцию можно вызвать, например, в админке или через WP-CLI. Для безопасности рекомендуется запускать её вручную, а не автоматически.
Пример добавления кнопки для удаления ревизий в админ-меню
Можно добавить простую страницу с кнопкой для очистки ревизий:
add_action('admin_menu', 'wpset_revision_cleanup_menu');
function wpset_revision_cleanup_menu() {
add_submenu_page('tools.php', 'Удалить ревизии', 'Удалить ревизии', 'manage_options', 'wpset-revision-cleanup', 'wpset_revision_cleanup_page');
}
function wpset_revision_cleanup_page() {
if (isset($_POST['wpset_cleanup_revisions'])) {
$count = wpset_delete_post_revisions();
echo '<div class="updated notice">Удалено ревизий: ' . intval($count) . '</div>';
}
echo '<h1>Удаление ревизий записей</h1>';
echo '<form method="post"><input type="submit" name="wpset_cleanup_revisions" class="button button-primary" value="Удалить все ревизии" /></form>';
}Такой подход безопасен и удобен для администраторов сайта.
Настройка ограничения количества ревизий в WordPress
Чтобы предотвратить накопление большого количества ревизий, можно ограничить их число в файле wp-config.php:
define('WP_POST_REVISIONS', 5);Это ограничит число ревизий до 5 на запись. Можно указать любое другое число или false, чтобы отключить ревизии полностью (не рекомендуется).
Также для оптимизации базы данных полезно периодически удалять ревизии, используя описанные выше методы.
Полезные плагины для работы с ревизиями
Если всё же хочется использовать готовое решение, стоит обратить внимание на плагины:
- WP Optimize — позволяет чистить базу от ревизий, спама и мусорных записей с удобным интерфейсом.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpset.ru&utm_medium=article&utm_campaign=kak-udalit-revizii-zapisej-v-wordpress-bez-plaginov) — содержит функции оптимизации, включая управление ревизиями и отключение ненужных опций.
Эти инструменты удобны для регулярной оптимизации без опасности ошибиться с запросами.
Рекомендации по безопасности при работе с базой данных
Перед удалением ревизий обязательно сделайте резервную копию базы данных. Даже если вы точно следуете инструкциям, лучше перестраховаться.
Также не запускайте SQL-запросы или код на живом сайте без тестирования на локальной копии.
Если вы не уверены, что сможете самостоятельно восстановить данные — используйте плагины с функцией отката.