Как удалить пустые категории в WordPress

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

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

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

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

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

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

Плагин WP Bulk Delete

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

Как удалить пустые категории с помощью WP Bulk Delete:

  • Установите и активируйте плагин.
  • Перейдите в меню Bulk WP > Delete Terms.
  • Выберите таксономию Категории (category).
  • Отметьте опцию Delete Empty Terms (Удалить пустые).
  • Нажмите кнопку удаления и подтвердите действие.

Плагин быстро просканирует категории и удалит те, в которых нет записей.

Плагин Term Management Tools

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

Хотя этот способ менее автоматизирован, он полезен для точечного контроля.

Удаление пустых категорий через код: пример функции для functions.php

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

function wpshab_delete_empty_categories() {
    $empty_categories = get_categories(array(
        'hide_empty' => true,
        'fields' => 'ids',
        'number' => 0
    ));

    $all_categories = get_categories(array('fields' => 'ids', 'number' => 0));
    $empty = array_diff($all_categories, $empty_categories);

    foreach ($empty as $cat_id) {
        wp_delete_category($cat_id);
    }
}

// Запускаем функцию один раз при инициализации админки
add_action('admin_init', 'wpshab_delete_empty_categories');

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

  • get_categories с hide_empty => true возвращает только категории с записями.
  • get_categories без hide_empty возвращает все категории.
  • Разница между всеми и заполненными категориями — это пустые категории.
  • Далее мы удаляем каждую пустую категорию через wp_delete_category.

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

Как избежать случайного удаления нужных категорий

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

function wpshab_delete_empty_categories_safe() {
    $exclude = array(1, 2); // ID категорий, которые не удалять
    $empty_categories = get_categories(array(
        'hide_empty' => true,
        'fields' => 'ids',
        'number' => 0
    ));

    $all_categories = get_categories(array('fields' => 'ids', 'number' => 0));
    $empty = array_diff($all_categories, $empty_categories);

    foreach ($empty as $cat_id) {
        if (!in_array($cat_id, $exclude)) {
            wp_delete_category($cat_id);
        }
    }
}
add_action('admin_init', 'wpshab_delete_empty_categories_safe');

В таком виде вы сможете защитить определённые категории от удаления.

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

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

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

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

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

Как создать динамический вывод постов в WordPress
29.11.2025
Как автоматизировать создание изображений для блоков Gutenberg в WordPress
12.02.2026
Как автоматизировать управление меню в WordPress
25.02.2026
Как автоматизировать управление robots.txt в WordPress
26.03.2026
WooCommerce: решение проблемы с отключёнными платёжными системами
06.05.2026