Rose debug info
---------------

Удаление ревизий записей в wordpress без плагинов из консоли.

WordPress по умолчанию сохраняет ревизии записей в базе mysql. В большинстве случаев эти ревизии не нужны, но они существенно замедляют работу базы mysql и увеличивают её размер.

В первую очередь отключим сохранение ревизий. Откроем файл wp-config.php в папке сайта. И добавим в него строку:

define('WP_POST_REVISIONS', false);

Перед выполнением работ с базой сделаем дамп базы на случай непредвиденных последствий.

# mysqldump -u пользователь_mysql -p имя_базы_wordpress > dump.sql

Система спросит пароль пользователя mysql.

Мы сделали дамп, теперь можно работать с базой. Если что-то пойдёт не так, мы всегда можем восстановить её из дампа. Подключимся к серверу mysql

# mysql -u пользователь_mysql -p

Система спросит пароль пользователя mysql, логинимся. Всё, мы в консоли mysql.

Снимок экрана от 2013-10-20 10:11:03

Выберем базу с которой будем работать, соответственно нам нужно знать название базы с которой работает wordpress.

mysql> USE имя_базы_wordpress;

Удаляем метаданные

mysql> DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’);

Удаляем таксономию

mysql> DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’);

Теперь удаляем сами ревизии.

mysql> DELETE FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’;

И в конце выполняем оптимизацию таблицы

mysql> OPTIMIZE TABLE wp_posts;

Всё, ревизии удалены. Проверяем работоспособность сайта.

Поделиться
Отправить