Как удалить записи из категории в WordPress без удаления самих постов

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

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

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

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

Как удалить запись из категории через админку WordPress

Самый простой способ отвязать запись от категории — редактировать сам пост:

  • Перейдите в Записи → Все записи.
  • Откройте нужную запись для редактирования.
  • В метабоксе Рубрики снимите галочку с категории, из которой хотите удалить запись.
  • Сохраните изменения.

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

Массовое удаление записей из категории с помощью плагина

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

После установки и активации:

  1. Перейдите в меню Bulk WP → Bulk Delete Posts.
  2. Выберите вкладку Delete posts by category.
  3. Отметьте категорию, из которой нужно удалить записи.
  4. Выберите опцию Keep posts and only remove category assignment.
  5. Запустите процесс удаления.

Так вы быстро очистите категорию без потери контента.

Удаление записей из категории программно: пример функции WPWeb

Если хотите автоматизировать процесс или сделать удаление из категории по событию, можно использовать PHP и WP-код. Ниже пример функции wpweb_remove_posts_from_category(), которая удаляет все записи из категории по ID, не удаляя сами записи.

function wpweb_remove_posts_from_category($category_id) {
    // Получаем все посты из категории
    $posts = get_posts(array(
        'category' => $category_id,
        'numberposts' => -1,
        'post_type' => 'post',
        'post_status' => 'any'
    ));
    foreach ($posts as $post) {
        // Получаем текущие категории записи
        $categories = wp_get_post_categories($post->ID);
        // Убираем нужную категорию
        $new_categories = array_diff($categories, array($category_id));
        // Обновляем категории записи
        wp_set_post_categories($post->ID, $new_categories);
    }
}

Для вызова функции достаточно передать ID категории, из которой нужно удалить все записи, например:

wpweb_remove_posts_from_category(12); // Удалить все записи из категории с ID 12

Эта функция безопасна, так как не удаляет сами записи, а корректно обновляет их категории.

Как узнать ID категории в WordPress

Чтобы использовать функцию или плагин, нужно знать ID категории. Сделать это просто:

  • В админке перейдите в Записи → Рубрики.
  • Наведите курсор на название категории.
  • Внизу браузера появится URL, в котором будет параметр tag_ID=число. Это и есть ID категории.

Или откройте категорию на редактирование — в адресной строке будет ID.

Как избежать потери SEO при удалении записей из категории

Иногда удаление записей из категории влияет на SEO, если категория перестаёт отображать важный контент. Чтобы этого избежать, стоит:

  • Проверить, есть ли другие категории у записей, чтобы они оставались в навигации.
  • Настроить редиректы, если URL категории изменяется.
  • Использовать плагины SEO, например SEO by WPWeb, для контроля индексации.

Выводы и рекомендации

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

Для расширения функционала и оптимизации рекомендуем обратить внимание на плагины с wpshop.ru.

Удаление неиспользуемых шорткодов в WordPress
22.11.2025
Как избежать проблем с миграцией сайта WordPress на новый домен
17.02.2026
Как удалить атрибуты style и script в WordPress для улучшения безопасности и производительности
25.11.2025
Как удалить неиспользуемые виджеты в WordPress для оптимизации сайта
11.02.2026
Как удалить временные файлы из кеша в WordPress при обновлении сайта
26.03.2026