Как удалить все посты из WordPress одним кликом

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

Почему нужно удалять все посты и когда это полезно

Удаление всех постов — задача нечастая, но важная. Например, вы создали тестовый сайт с большим количеством контента, но теперь хотите начать с чистого листа. Или вы меняете структуру сайта и вам нужно удалить устаревшие записи. Ручное удаление через панель администратора неудобно и занимает много времени. Автоматизация процесса — ключ к успешному и быстрому решению.

Важно помнить про безопасность: удаление постов — необратимая операция, поэтому всегда делайте резервную копию базы данных перед выполнением массовых изменений.

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

Плагин WP Bulk Delete

Один из самых популярных и удобных плагинов — WP Bulk Delete. Он позволяет удалять посты по разным критериям: по статусу, типу, категории, тегу и другим параметрам.

Чтобы удалить все посты:

  1. Установите и активируйте плагин WP Bulk Delete.
  2. Перейдите в меню Bulk WP → Delete Posts.
  3. Выберите нужные критерии, в нашем случае — все посты, оставив фильтры пустыми.
  4. Нажмите кнопку Delete.

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

Плагин Advanced Database Cleaner

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

Удаление всех постов с помощью PHP-кода

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

Пример функции для быстрого удаления всех постов:

function wpbox_delete_all_posts() {
    // Получаем все посты
    $all_posts = get_posts(array(
        'post_type' => 'post',
        'numberposts' => -1,
        'post_status' => 'any'
    ));
    
    foreach ($all_posts as $post) {
        wp_delete_post($post->ID, true); // true — удаление без возможности восстановления
    }
}

Для запуска функции вставьте вызов wpbox_delete_all_posts(); в файл functions.php вашей темы или в отдельный плагин. Важно: не забудьте после выполнения удалить или закомментировать вызов функции, чтобы случайно не удалить посты повторно.

Оптимизация и безопасность

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

function wpbox_bulk_delete_posts_batch() {
    $posts = get_posts(array(
        'post_type' => 'post',
        'numberposts' => 50,
        'post_status' => 'any'
    ));

    if (empty($posts)) {
        return false; // Все посты удалены
    }

    foreach ($posts as $post) {
        wp_delete_post($post->ID, true);
    }

    return true; // Есть еще посты для удаления
}

Вы можете запускать эту функцию несколько раз, например, вручную или через WP-CLI, чтобы постепенно очистить сайт.

Удаление постов через WP-CLI — удобный способ для разработчиков

WP-CLI — это командная строка для управления WordPress. Она позволяет выполнять сложные операции быстро и безопасно.

Для удаления всех постов выполните команду:

wp post delete $(wp post list --post_type=post --format=ids) --force

Объяснение:

  • Команда wp post list выводит ID всех постов.
  • Передача этих ID в wp post delete удаляет их с опцией --force для полного удаления без перемещения в корзину.

Этот способ особенно полезен, если у вас есть доступ к серверу по SSH и вы знакомы с командной строкой.

Удаляем не только посты, но и связанные данные

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

  • Ревизии постов — автоматически сохраняемые версии записей.
  • Медиафайлы, которые больше не используются.
  • Комментарии к удалённым постам.

Для очистки ревизий можно использовать следующий код:

function wpbox_delete_post_revisions() {
    global $wpdb;
    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
}

Для удаления неиспользуемых медиафайлов можно применить плагины, например, Media Cleaner.

Выводы и рекомендации по удалению всех постов

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

  • Плагины — простой и безопасный путь для большинства пользователей.
  • PHP-код — гибкий вариант для разработчиков с возможностью кастомизации.
  • WP-CLI — мощный инструмент для опытных специалистов.

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

Как удалить все посты из WordPress одним кликом
24.11.2025
Как отключить Gutenberg для отдельных типов записей в WordPress
30.12.2025
Как создать свой шорткод в WordPress: подробное руководство
04.11.2025
Уникальные метаданные для каждого поста WordPress: как добавить и использовать
14.12.2025
Оптимизация базы данных WordPress: практические советы и примеры кода
09.11.2025