WordPress: черновики, авто-черновики, ревизии. Очистка базы данных.
Описание.
В процессе эксплуатации WordPress будут накапливаться различные копии записей текстовой информации в базе данных MariaDB. Такие копии требуются для того, чтобы было удобно работать с текстовой информацией: восстанавливать старые варианты тестов, защищаться от потери связи с WordPress и потерей текста из-за этого, проводить контроль правок текстов и так далее.

Существует множество способов контроля сокращения репликации данных сущностей, но мне удобнее контроль через базу данных MariaDB. Обычно я удаляю лишние записи, когда точно уверен, что мне ничего не надо восстанавливать из старых копий.
Из наиболее полезных состояний текстов можно выделить три:
- draft (черновик);
- auto-draft (авто-черновик);
- revision (ревизия).
Draft
Draft (черновики) — это сохранённая версия поста или страницы, которая ещё не опубликована.

Редактор WordPress автоматически сохраняет новый контент как черновик во время работы над ним. Функция draft позволяет создавать заметки о посте, собирать мысли и организовывать идеи перед его проверкой и публикацией.
Если на сайте несколько авторов, черновики можно использовать для создания контента, который не виден читателям, но могут проверить другие редакторы перед публикацией.
По умолчанию в WordPress есть несколько стандартных статусов постов, среди которых draft — черновики (записи, которые ещё находятся в процессе написания и не готовы к публикации):
- publish — опубликованная запись, доступна для просмотра каждому.
- future — пост, запланированный на публикацию в будущем.
- pending — пост, ожидающий проверки редактором или администратором.
- private — посты, доступные для просмотра и редактирования только администраторам.
- trash — посты, находящиеся в корзине.
- auto-draft — черновики, которые создаются автоматически в процессе редактирования постов.
- inherit — этот статус присваивается всем вложениям, а также редакциям записей.
Auto-Draft
Auto-Draft (авто-черновик) — это статус, который обозначает автоматическое сохранение версий поста во время его редактирования.
По умолчанию WordPress сохраняет копию поста каждые 60 секунд. Последняя версия авто-черновика отображается в области «Ревизии» поста.
Существуют разные типы авто-черновиков:
- Стандартные. Создаются при начале создания нового поста или страницы.
- Ненужные. Черновики, которые не редактировались и не завершались.
- Авто-черновики изменений. Сохраняются каждый раз, когда вносятся изменения в пост или страницу.
Revisions
Revisions (ревизия) — система ревизий (сохранённых версий) в WordPress, которая позволяет просматривать и сравнивать разные версии контента (постов, страниц). По умолчанию для каждого поста или страницы сохранено несколько ревизий, точное количество зависит от конфигурации сайта.

Можно контролировать и ограничивать количество ревизий.
Полностью отключить ревизии не рекомендуется, но это может потребоваться, чтобы уменьшить размер базы данных сайта.
Например, можно ограничить количество ревизий, добавив код в файл wp-config.php: define( 'WP_POST_REVISIONS', 10 );.
Это означает, что нужно заменить 10 на количество ревизий, которое нужно сохранять.
План действий в базе данных.
Для осуществления задуманного используем команды на SQL для базы данных MariaDB.
Заходим в консоль MariaDB:
# mysql
Заходим в целевую базу данных:
> SHOW DATABASES; > USE `new_hd_wp_db`; > SHOW TABLES;
Выход из MariaDB:
> exit;
SQL Draft
Внимание! Не используйте удаление черновиков, если ваши тексты находятся в таком статусе. Это приведет к тому, что вы просто удалите свои труды без возврата и будете потом грустить от потери своих текстов.
// Подсчет черновиков
SELECT COUNT(*) FROM wp_posts WHERE post_status = 'draft';
// Поиск черновиков
SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_status = 'draft';
// Удаление черновиков
DELETE FROM wp_posts WHERE post_type= 'draft';
SQL Auto-Draft
// Подсчет авто-черновиков
SELECT COUNT(*) FROM wp_posts WHERE post_status = 'auto-draft';
// Поиск авто-черновиков
SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_status = 'auto-draft';
// Удаление авто-черновиков
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
SQL Revisions
// Подсчет ревизий
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';
// Поиск ревизий
SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_type = 'revision';
// Удаление ревизий
DELETE FROM wp_posts WHERE post_type= 'revision';
Пошаговый алгоритм.
Заходим в базу данных к нужной таблице.
Заходим в консоль базы данных:
# mysql
Ответ:

Смотрим список баз данных для промысла:
> SHOW DATABASES;
Ответ:

Запрашиваем целевую базу данных:
> USE `new_hd_wp_db`;
Ответ:

Смотрим наполнение таблицами:
> SHOW TABLES;
Ответ:

Теперь можно работать напрямую с таблицами.
Удаление черновиков.
Внимание! Не используйте удаление черновиков, если ваши тексты находятся в таком статусе. Это приведет к тому, что вы просто удалите свои труды без возврата и будете потом грустить от потери своих текстов.
Произведем подсчет черновиков:
> SELECT COUNT(*) FROM wp_posts WHERE post_status = 'draft';
Ответ:

Произведем поиск черновиков:
> SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_status = 'draft';
Ответ:

Произведем удаление черновиков:
> DELETE FROM wp_posts WHERE post_type= 'draft'
Ответ: удалять я, конечно, черновики не стал.
Удаление авто-черновиков.
Произведем подсчет авто-черновиков:
> SELECT COUNT(*) FROM wp_posts WHERE post_status = 'auto-draft';
Ответ:

Произведем поиск авто-черновиков:
> SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_status = 'auto-draft';
Ответ:

Произведем удаление авто-черновиков:
> DELETE FROM wp_posts WHERE post_status = 'auto-draft';
Ответ:

P.S. там удалилась Страница, которую я создавал для Меню сайта, но Меню сайта создало себе другую страницу, которую я и использовал потом, а страница /?p=1839 автоматически сохранилась при создании, но не была задействована в активной части сайта и стала просто храниться в базе данных. Эту ненужную страничку мы и стёрли.

Удаление ревизий.
Произведем подсчет ревизий:
> SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';
Ответ:

Произведем поиск ревизий:
> SELECT ID, post_status, post_title, guid, post_type FROM wp_posts WHERE post_type = 'revision';
Ответ:

Произведем удаление ревизий:
> DELETE FROM wp_posts WHERE post_type= 'revision';
Ответ:
![]()
Выход из базы данных.
Выходим из MariaDB:
> exit;
Оригиналы источников информации.
- publishpress.com «Auto-Draft Status in WordPress.»
- wpbeginner.com «What is: Draft.»
- greengeeks.com «What is a Draft in WordPress?»
- misha.agency «Статусы постов.»
- wordpress.org «Post Status.»
- wpbeginner.com «What is: Revisions.»
- internet-technologies.ru «Ревизии записей в WordPress — это просто: пошаговое руководство.»