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;

Оригиналы источников информации.

  1. publishpress.com «Auto-Draft Status in WordPress.»
  2. wpbeginner.com «What is: Draft.»
  3. greengeeks.com «What is a Draft in WordPress?»
  4. misha.agency «Статусы постов.»
  5. wordpress.org «Post Status.»
  6. wpbeginner.com «What is: Revisions.»
  7. internet-technologies.ru «Ревизии записей в WordPress — это просто: пошаговое руководство.»