Массовое удаление постов в WordPress

Со временем почти на любом сайте на WordPress накапливаются лишние посты. Это могут быть старые записи, тестовые материалы, дубли или черновики. Удалять такие посты по одному – долго и утомительно, особенно если их десятки или сотни. К счастью, в WordPress есть несколько способов массового удаления записей. В этой статье разберём самые удобные и практичные варианты: через админку, с помощью плагина и через код.

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

Массовое удаление постов WordPress через админку

Это самый простой и безопасный способ, который подойдёт большинству пользователей. Никаких плагинов и кода – всё делается стандартными средствами через привычный интерфейс WordPress.

  1. Зайдите в админку WordPress.
  2. Перейдите в раздел Записи → Все записи.
  3. Поставьте галочки напротив тех записей, которые необходимо удалить. Если нужно удалить все записи сразу, можно поставить галочку в левом верхнем углу таблицы.
  1. Теперь в выпадающем списке Действие выберите значение Удалить и нажмите кнопку Применить.
  1. Все выбранные посты будут отправлены в корзину.

По умолчанию посты в WordPress будут храниться в корзине 30 дней. По истечении этого периода все содержимое корзины будет безвозвратно удалено.

По умолчанию WordPress показывает 20 записей на странице, но это легко изменить.

  1. На странице Все записи нажмите кнопку «Настройки экрана» (в правом верхнем углу).
  2. В поле «Количество элементов на странице» укажите нужное число — например, 50 или 100.
  3. Нажмите «Применить».

Теперь можно удалять больше постов за один раз, не переключаясь между страницами.

Удаление постов определённого автора

Если нужно удалить записи конкретного автора, делаем так:

  1. Перейдите в Записи → Все записи.
  2. В столбце Автор кликаем на имя нужного автора.
  1. Откроется таблица постов конкретного автора.
  2. Выделите необходимые для удаления посты.
  3. Выберите действие «Удалить» и нажмите «Применить».

Таким образом можно быстро убрать весь контент конкретного пользователя.

Удаление постов определённой категории

Аналогично работает удаление по категориям:

  1. Перейдите в раздел Все записи.
  2. В фильтре «Все рубрики» выберите нужную категорию и нажмите «Фильтр». Или в столбце Рубрики кликните на название нужной рубрики.
  1. Выделите посты для удаления.
  2. Удалите их через массовое действие.

Если в категории очень много записей, удаляйте их партиями, чтобы избежать ошибок сервера.

Массовое удаление постов через плагин

Если стандартных возможностей админки не хватает, на помощь приходят плагины. Один из самых популярных — Bulk Delete.

Возможности плагина Bulk Delete

Плагин позволяет удалять посты по самым разным условиям:

  • по дате публикации;
  • по автору;
  • по категории или тегам;
  • по типу записи;
  • только черновики или только опубликованные;
  • посты без комментариев;
  • посты с определённым количеством просмотров (при использовании счётчиков).

Это удобно, если нужно выполнить сложную очистку сайта по фильтрам.

Инструкция по использованию Bulk Delete

  1. Установите и активируйте плагин Bulk Delete через раздел Плагины.
  2. Перейдите в меню Bulk Delete в админке.
  3. Выберите тип контента (например, записи).
  4. Настройте нужные параметры удаления.
  1. Нажмите кнопку удаления.

Плагин покажет предупреждение – внимательно проверьте настройки перед подтверждением.

Удаление через плагин происходит напрямую, минуя корзину. Это ещё одна причина сделать бэкап.

Массовое удаление постов через код

Иногда удаление через админку или плагин не подходит. Например:

  • нужно удалить тысячи записей;
  • сложная фильтрация для выборки постов;
  • сайт сильно нагружен и плагины тормозят;
  • нужно выполнить удаление один раз и без интерфейса.

В таких случаях удобнее использовать код. Но этот способ требует аккуратности и минимального понимания, что вы делаете.

Пример кода для массового удаления постов

function delete_all_posts_by_category() {
    $posts = get_posts(array(
        'numberposts' => -1,
        'category'    => 5, // ID категории
        'post_type'   => 'post',
        'post_status' => 'any',
        'fields' => 'ids',
    ));

    foreach ($posts as $post_id) {
        wp_delete_post($post_id, true);
    }
}

delete_all_posts_by_category();

Куда вставлять код и как его запустить

  1. Откройте файл functions.php вашей темы (лучше использовать дочернюю тему).
  2. Вставьте код в конец файла.
  3. Замените 5 на ID нужной категории. (Если необходимо удаление постов из определенной категории).
  4. Обновите любую страницу сайта. Посты будут удалены.
  5. После выполнения обязательно удалите вызов функции (15 строка), чтобы он не сработал повторно.

Код удаляет посты безвозвратно. Корзина не используется.

Итог

Если у вас небольшой сайт – смело используйте админку WordPress.
Для более сложных сценариев подойдёт плагин Bulk Delete.
А если вы работаете с большим проектом или знаете, что делаете – код даст максимум контроля.

Главное правило одно: всегда делайте резервную копию перед массовым удалением. Это сэкономит вам нервы, время и деньги.