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

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

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

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

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

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

Самый простой способ — зайти в «Записи» → «Рубрики». Здесь вы увидите список всех категорий с количеством записей в каждой. Те, у которых значение 0, — пустые.

Чтобы удалить пустую категорию:

  1. Наведите курсор на категорию с 0 записей.
  2. Нажмите «Удалить».
  3. Подтвердите действие.

Минус этого способа — если категорий много, удаление по одной займет много времени. Для постоянного контроля лучше автоматизировать процесс.

Автоматическое удаление пустых категорий с помощью кода

Можно написать функцию, которая будет удалять все пустые категории в WordPress за один запуск. Поместите следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpcommunity_delete_empty_categories() {
    $empty_categories = get_terms([
        'taxonomy' => 'category',
        'hide_empty' => false,
        'fields' => 'ids',
        'meta_query' => [],
        'count' => 0
    ]);

    foreach ($empty_categories as $cat_id) {
        $term = get_term($cat_id);
        if ($term->count == 0) {
            wp_delete_term($cat_id, 'category');
        }
    }
}
// Запуск функции однократно
add_action('init', 'wpcommunity_delete_empty_categories');

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

Как безопасно запускать функцию удаления

Чтобы не удалять категории при каждом заходе на сайт, можно добавить условие запуска по специальному параметру в URL:

function wpcommunity_delete_empty_categories() {
    if (!is_admin() || !isset($_GET['wpcommunity_delete_empty'])) {
        return;
    }
    $empty_categories = get_terms([
        'taxonomy' => 'category',
        'hide_empty' => false,
        'fields' => 'ids'
    ]);

    foreach ($empty_categories as $cat_id) {
        $term = get_term($cat_id);
        if ($term->count == 0) {
            wp_delete_term($cat_id, 'category');
        }
    }
    echo 'Пустые категории удалены.';
    exit;
}
add_action('admin_init', 'wpcommunity_delete_empty_categories');

Теперь достаточно перейти в админке по адресу https://ваш-сайт/wp-admin/?wpcommunity_delete_empty=1, чтобы очистить пустые категории.

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

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

Плагин Clearfy Pro

Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wpcommunity.ru&utm_medium=article&utm_campaign=kak-udalit-pustye-kategorii-v-wordpress-udobnym-sposobom) содержит инструменты для очистки базы, включая удаление пустых категорий и тегов. После установки вы можете в разделе оптимизации выбрать нужную опцию и автоматически очистить сайт от пустых таксономий.

Плагин Term Management Tools

Плагин Term Management Tools позволяет массово удалять, объединять и менять категории и метки. Он удобен для работы с большим количеством таксономий и позволяет быстро удалить все пустые категории без риска повредить данные.

Как предотвратить появление пустых категорий

Чтобы не допускать появления пустых категорий, можно:

  • При удалении записей задавать автоматическую очистку категорий без записей с помощью WP-Cron.
  • Использовать контроль заполнения категорий при создании новых записей.
  • Автоматически переназначать записи в дефолтную категорию при удалении категории.

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

function wpcommunity_delete_empty_categories_after_post_delete($post_id) {
    $categories = wp_get_post_categories($post_id);
    foreach ($categories as $cat_id) {
        $term = get_term($cat_id);
        if ($term->count == 1) { // 1 потому что запись еще не удалена
            wp_delete_term($cat_id, 'category');
        }
    }
}
add_action('before_delete_post', 'wpcommunity_delete_empty_categories_after_post_delete');

Этот код удалит категорию, если после удаления записи она станет пустой.

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

Удаление пустых категорий — важная задача для поддержания чистоты и оптимизации сайта на WordPress. Для этого можно использовать как ручной метод через админку, так и автоматические решения с помощью кода или плагинов, например, Clearfy Pro.

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

Как создать автоматические резервные копии в WordPress
16.11.2025
Как использовать фильтры WooCommerce для автоматического изменения стоимости товаров
03.06.2026
Как отключить Gutenberg и вернуть классический редактор в WordPress
06.02.2026
Как автоматизировать обновление пользовательских ролей в WordPress
22.12.2025
Как автоматизировать удаление неиспользуемых купонов в WooCommerce
21.05.2026

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: