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

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

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

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

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

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

Способы удаления пустых категорий в WordPress

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

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

1. Плагин Term Management Tools

  • Позволяет массово удалять, объединять и управлять категориями и тегами.
  • После установки вам нужно перейти в Инструменты > Term Management и выбрать пустые категории для удаления.

2. Плагин WP Bulk Delete

  • Поддерживает удаление по разным критериям, включая пустые категории.
  • После установки зайдите в Bulk WP > Delete Terms, выберите «Пустые категории» и выполните удаление.

Но если вы хотите контролировать процесс, можно использовать кастомный код.

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

Для более гибкого и автоматизированного удаления пустых категорий можно создать функцию в файле functions.php вашей темы или в отдельном плагине.

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

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

    // Получаем все категории
    $all_categories = get_categories(array(
        'hide_empty' => false,
        'fields' => 'ids'
    ));

    // Находим категории, которые не в списке заполненных
    $empty_ids = array_diff($all_categories, $empty_categories);

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

// Запускаем функцию при необходимости, например, по хуку admin_init
add_action('admin_init', 'wptalk_delete_empty_categories');

Разберём код:

  • Сначала получаем список всех категорий с записями (hide_empty => true), сохраняем их ID.
  • Далее получаем полный список всех категорий, включая пустые (hide_empty => false).
  • Определяем пустые категории как разницу между всеми и заполненными.
  • Удаляем каждую пустую категорию функцией wp_delete_category().

Этот код можно запускать вручную или по событию в админке. Важно: перед удалением лучше сделать резервную копию базы данных.

Как найти пустые категории без удаления

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

function wptalk_get_empty_categories() {
    $all_categories = get_categories(array('hide_empty' => false));
    $empty_cats = array();
    foreach ($all_categories as $cat) {
        if ($cat->count === 0) {
            $empty_cats[] = $cat;
        }
    }
    return $empty_cats;
}

// Пример вывода в админке
add_action('admin_notices', function() {
    $empty_cats = wptalk_get_empty_categories();
    if (!empty($empty_cats)) {
        echo '<div class="notice notice-warning is-dismissible"><p>Пустые категории: <strong>';
        foreach ($empty_cats as $cat) {
            echo esc_html($cat->name) . ', ';
        }
        echo '</strong></p></div>';
    }
});

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

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

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

  • Удаляйте категории при удалении записей: если вы удаляете все записи из категории, подумайте, нужна ли она дальше.
  • Используйте плагины с контролем категорий: например, Clearfy Pro предлагает расширенные настройки управления таксономиями.
  • Автоматизируйте очистку: добавьте код для регулярной проверки и удаления пустых категорий с помощью WP-Cron.

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

function wptalk_schedule_empty_category_cleanup() {
    if (!wp_next_scheduled('wptalk_cron_empty_cat_cleanup')) {
        wp_schedule_event(time(), 'weekly', 'wptalk_cron_empty_cat_cleanup');
    }
}
add_action('wp', 'wptalk_schedule_empty_category_cleanup');

add_action('wptalk_cron_empty_cat_cleanup', 'wptalk_delete_empty_categories');

Заключение

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

Для удобства управления категориями и другими аспектами сайта рекомендуем обратить внимание на плагины и темы от WPSHOP, которые помогут сделать ваш WordPress более функциональным и удобным.

Внутренняя поисковая оптимизация WordPress: практические советы
18.02.2026
Автоматическое отключение неактивных товаров в WooCommerce по дате последней покупки
07.05.2026
Как создать автоматический импорт продуктов в WordPress из CSV файла
20.11.2025
Как установить границы пагинации в WordPress для улучшения навигации
01.01.2026
Как автоматически удалять старые черновики в WordPress
10.02.2026