Как удалить все посты по автору в WordPress: практическое руководство

Почему может понадобиться удалить все посты по автору в WordPress

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

Удаление всех постов по автору вручную через админ-панель — процесс долгий и неудобный, особенно если записей много. В этой статье мы разберём, как сделать это быстро и безопасно с помощью кода и плагинов.

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

Удаление постов по автору через WP-CLI

WP-CLI — мощный инструмент командной строки для управления WordPress. Если у вас есть доступ к серверу через SSH, это самый быстрый способ.

Для начала нужно узнать ID автора. Для этого выполните команду:

wp user list --field=ID,display_name

Допустим, ID автора равен 5. Чтобы удалить все записи автора, используйте:

wp post delete $(wp post list --author=5 --field=ID) --force

Параметр --force удалит записи без перемещения в корзину. Если вы хотите сначала переместить в корзину, уберите этот параметр.

Преимущества метода: быстрота, контроль, возможность включить в автоматические скрипты.

Удаление постов по автору через пользовательский PHP-скрипт

Если доступа к WP-CLI нет, можно использовать PHP-код. Ниже пример функции для удаления постов с автором по ID.

function wpboard_delete_posts_by_author($author_id) {
    $args = [
        'author' => $author_id,
        'post_type' => 'post',
        'posts_per_page' => -1,
        'fields' => 'ids'
    ];
    $query = new WP_Query($args);
    if (!empty($query->posts)) {
        foreach ($query->posts as $post_id) {
            wp_delete_post($post_id, true); // true чтобы обойти корзину
        }
    }
}

// Использование:
// wpboard_delete_posts_by_author(5);

Рекомендуется запускать этот код в функции темы, плагине или через плагин для пользовательских сниппетов. Обязательно сделайте резервную копию базы данных перед запуском.

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

Удаление постов по автору с помощью AJAX и частями

Для очень большого количества записей удаление одним запросом может привести к таймауту. Следующий пример показывает идею постраничного удаления через AJAX запросы:

function wpboard_ajax_delete_posts() {
    $author_id = intval($_POST['author_id']);
    $paged = intval($_POST['paged']);
    $posts_per_page = 20;

    $args = [
        'author' => $author_id,
        'post_type' => 'post',
        'posts_per_page' => $posts_per_page,
        'paged' => $paged,
        'fields' => 'ids'
    ];

    $query = new WP_Query($args);

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

    wp_send_json_success(['deleted' => count($query->posts), 'paged' => $paged]);
}
add_action('wp_ajax_wpboard_delete_posts', 'wpboard_ajax_delete_posts');

Дальше нужно написать JavaScript, который будет отправлять AJAX запросы с увеличивающимся paged пока не удалит все записи.

Удаление постов по автору с помощью плагинов

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

  • Bulk Delete — позволяет массово удалять посты по разным критериям, включая автора.
  • WP Bulk Delete — похожий плагин с большим набором фильтров.

В Bulk Delete нужно выбрать тип записи, указать автора и запустить удаление. Плагины обычно имеют интерфейс для предварительного просмотра и безопасности.

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

1. Установите и активируйте плагин Bulk Delete.

2. Перейдите в Bulk Delete > Posts.

3. Выберите фильтр "By Author".

4. Укажите нужного автора.

5. Запустите удаление. Можно настроить удаление в корзину или полное удаление.

Важные рекомендации и безопасность

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

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

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

Для автоматизации процессов рекомендую использовать WP-CLI, а для разовых операций — плагины или пользовательский PHP-код с осторожностью.

Выводы

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

WP-CLI — лучший вариант для разработчиков и админов с SSH-доступом.

Пользовательские PHP-скрипты дают гибкость, но требуют аккуратности.

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

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

Как использовать хуки WooCommerce для кастомизации функциональности
17.03.2026
Как удалить варианты товаров WooCommerce по условию и избежать ошибок
26.05.2026
Как удалить варианты товаров WooCommerce по условию через код
23.05.2026
Как создать авторизацию через собственную форму в WordPress
30.11.2025
Использование хука woocommerce_new_order для интеграции с внешними сервисами
10.05.2026