Иногда администратор сайта на CMS WordPress может столкнуться с необходимостью удаления определенного типа записей. Это можно сделать по привычке в админ-панели, выделяя галочкой нужные записи и удаляя их в массовом порядке. Однако, часто приходится сталкиваться с вариантами, когда необходимо удалить все записи в статусе «черновик», или «на модерации», или «запланированные», а их могут быть сотни, тысячи и десятки тысяч записей — не удалять же их вручную?
В этом деле поможет простой запрос в MySQL.
Нужно зайти в phpMyAdmin (как это сделать — отдельная статья, если не знаете поищите по запросу), затем выбираем нужную нам базу wp_posts (wp_ может быть другим, если у вас используется свой префикс), и на главной странице нажимаем вкладку SQL.
Для удаления всех черновиков набираем следующую команду:
DELETE FROM wp_posts WHERE post_status = "draft";
Нажимаем кнопку «Вперед» или «Go» в зависимости от языка.
После выполнения команды, phpMyAdmin отчитается об успешно проведенной операции.
Точно также можно поступить с записями и в других статусах.
По умолчанию в CMS WordPress 8 статусов записей:
- future – будущий (отложенный) пост;
- pending – пост на модерации;
- trash – удаленный пост;
- publish – опубликованный пост;
- inherit – вложения;
- auto-draft – автоматический черновик;
- draft – черновик;
- private – личный (скрытый) пост.
Указывая в команде, в кавычках, нужный вам статус записей, вы удалите их все. Например, заменив draft на trash вы удалите все записи из корзины.