Иногда возникает задача полностью очистить контент сайта на WordPress — удалить все посты и страницы. Это может понадобиться при смене концепции сайта, подготовке к новому проекту или устранении большого количества тестовых данных. Вручную удалять записи по одной — неэффективно и отнимает много времени. В этой статье мы подробно разберём несколько способов массового удаления постов и страниц, включая использование плагинов и написание собственного кода.
Почему важно правильно удалять все записи и страницы в WordPress
Просто удалить записи из админки не всегда достаточно. Важно учитывать, что:
- Удалённые посты могут оставаться в корзине и занимать место.
- Некоторые записи связаны с метаданными, комментариями и таксономиями, которые тоже нужно удалить.
- Без правильного подхода можно случайно повредить структуру сайта или базу данных.
Поэтому мы рекомендуем использовать проверенные методы и делать резервные копии перед началом операций.
Способ 1: Использование плагина WP Bulk Delete для массового удаления
Плагин WP Bulk Delete — мощный и удобный инструмент для массового удаления постов, страниц и пользовательских типов записей по различным условиям. Он позволяет быстро очистить весь контент или оставить только нужные элементы.
Как использовать WP Bulk Delete для удаления всех постов и страниц
- Установите и активируйте плагин через админку WordPress.
- Перейдите в меню Bulk WP Delete > Bulk Delete Posts.
- В разделе Post Type выберите
Postдля удаления записей блога. - Для удаления страниц выберите
Pageв аналогичном разделе. - Выберите опцию Delete all posts или Delete all pages.
- Нажмите кнопку Delete и подтвердите действие.
Плагин удалит все выбранные записи вместе с комментариями и мета-данными. Можно настроить фильтры для удаления по категориям, тегам, статусу, дате и другим параметрам.
Способ 2: Удаление всех постов и страниц с помощью WP-CLI
Если у вас есть доступ к командной строке на сервере, WP-CLI — отличный инструмент для массовых операций с WordPress, включая удаление контента.
Команды для удаления
Удаление всех постов:
wp wprus_delete_all_posts() { wp post delete $(wp post list --post_type=post --format=ids) --force; } wprus_delete_all_postsУдаление всех страниц:
wp wprus_delete_all_pages() { wp post delete $(wp post list --post_type=page --format=ids) --force; } wprus_delete_all_pagesЗдесь мы используем внутренние функции с префиксом wprus_ для примера. Функции вызывают WP-CLI для получения списка ID записей и удаления их без перемещения в корзину (параметр --force).
WP-CLI позволяет быстро и безопасно очистить базу данных, особенно на больших сайтах.
Способ 3: Программное удаление через PHP-код
Иногда нужно встроить удаление в тему или плагин. Рассмотрим простой пример функции, которая удалит все посты и страницы:
function wprus_delete_all_posts_and_pages() {
// Получаем все ID постов
$posts = get_posts(array(
'post_type' => array('post', 'page'),
'numberposts' => -1,
'post_status' => 'any',
'fields' => 'ids',
));
foreach ($posts as $post_id) {
wp_delete_post($post_id, true); // true — принудительное удаление
}
}Эту функцию можно вызвать один раз, например, через хук администратора или WP-CLI команду. Обратите внимание, что параметр $force_delete равен true, чтобы обойти корзину.
Как безопасно использовать код
Перед запуском обязательно сделайте резервную копию базы данных. Для вызова функции можно добавить временный пункт меню в админке или использовать WP-CLI:
add_action('admin_menu', function() {
add_submenu_page('tools.php', 'Удалить все записи', 'Удалить все записи', 'manage_options', 'wprus-delete-all', function() {
if (isset($_POST['wprus_delete_all'])) {
wprus_delete_all_posts_and_pages();
echo '<div class="notice notice-success">Все записи удалены.</div>';
}
echo '<form method="post"><input type="submit" name="wprus_delete_all" value="Удалить все посты и страницы" class="button button-danger" /></form>';
});
});Так вы сможете запускать удаление вручную из админки, исключая случайные удаления.
Советы по безопасности и резервному копированию
Массовое удаление контента — опасная операция, поэтому:
- Всегда делайте полную резервную копию базы данных и файлов сайта перед удалением.
- Тестируйте скрипты и плагины на тестовом сервере, чтобы избежать потери данных.
- Ограничьте доступ к функциям удаления только администраторам.
- Если не уверены, используйте плагин с возможностью восстановления из корзины.
Заключение: Какой способ выбрать
Для большинства пользователей самым удобным и безопасным будет плагин WP Bulk Delete. Он интуитивен и позволяет гибко настроить условия удаления. Для тех, кто предпочитает командную строку и работает с большими сайтами — WP-CLI обеспечит скорость и контроль. Если нужен встроенный в тему или плагин функционал — используйте программный метод с функцией, описанной выше, придерживаясь мер безопасности.
Независимо от выбранного способа, подходите к удалению контента ответственно и всегда делайте резервные копии.