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

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

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

Категории в WordPress — это таксономии, которые помогают структурировать контент. Иногда категории становятся неактуальными или дублируют друг друга, и требуется очистить их от записей, чтобы улучшить навигацию и SEO.

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

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

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

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

Недостаток: массовое редактирование работает только с текущей страницей записей, если записей много — придётся повторять несколько раз.

Удаление связи записей с категорией с помощью SQL-запроса

Для быстрого удаления всех связей можно использовать SQL. Это особенно удобно при большом объёме записей.

В WordPress связи между записями и категориями хранятся в таблице wp_term_relationships. Чтобы удалить все связи с категорией с ID = 15, выполните запрос:

DELETE FROM wp_term_relationships WHERE term_taxonomy_id = 15;

Важно: перед выполнением SQL-запросов сделайте резервную копию базы данных!

Программное удаление категории из записей через WP24-функцию

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

Пример функции для удаления категории с ID = 15 со всех записей:

function wp24_remove_category_from_posts($category_id) {
    $args = [
        'category' => $category_id,
        'posts_per_page' => -1,
        'fields' => 'ids',
    ];
    $posts = get_posts($args);
    foreach ($posts as $post_id) {
        wp_remove_object_terms($post_id, $category_id, 'category');
    }
}

// Вызов функции
wp24_remove_category_from_posts(15);

Данная функция получит все записи из категории и удалит у них связь с ней. Это безопасный метод без прямого SQL.

Объяснение кода

get_posts с параметром fields => 'ids' возвращает только ID записей для экономии памяти. Затем wp_remove_object_terms снимает категорию с записи.

Использование плагинов для удаления категорий из записей

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

  • Bulk Remove Terms — позволяет массово удалять термины (категории, теги) из записей. Удобный интерфейс и фильтры.
  • Term Management Tools — расширяет стандартные возможности управления таксономиями, включая массовое удаление и перенос терминов.

Оба плагина можно найти в репозитории WordPress и установить прямо из админки.

Практическое применение: удаление категории "Старые новости" из записей

Допустим, у вас есть категория с ID 42 — "Старые новости", которую вы хотите удалить из всех записей, не удаляя сами записи.

Используем функцию из примера выше:

wp24_remove_category_from_posts(42);

После выполнения этой функции записи перестанут быть связаны с категорией "Старые новости", и категория не будет отображаться в списках и виджетах.

Советы по оптимизации после удаления категорий

После удаления категорий из большого количества записей рекомендуется:

  • Очистить кэш сайта, если используете плагины кэширования.
  • Проверить, нет ли ссылок и меню с устаревшими категориями и обновить их.
  • Оптимизировать базу данных с помощью плагинов типа Clearfy Pro, чтобы удалить неиспользуемые таксономии и метаданные.

Заключение

Удаление записей из категории WordPress без удаления самих записей — частая задача, решаемая несколькими способами: через админку, SQL-запросы или программно с помощью функций. Используйте подходящий метод в зависимости от объёма и удобства. Не забывайте делать резервные копии и очищать кэш после изменений.

Как добавить собственные поля в WordPress без плагинов
02.11.2025
Как создать автоматическую резервную копию WordPress: лучшие практики и примеры кода
17.11.2025
Как использовать handy код для удаления старых метаданных в WordPress
09.01.2026
Запрет на индексацию сайта WordPress через robots.txt и .htaccess: практические методы
28.01.2026
Как удалить все комментарии в WordPress с помощью кода
10.12.2025