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

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

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

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

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

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

Как найти пустые категории в WordPress вручную

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

Для автоматизации задачи лучше использовать код или плагины.

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

Функция для удаления пустых категорий

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

function wpfaq_delete_empty_categories() {
    $empty_cats = get_terms(array(
        'taxonomy' => 'category',
        'hide_empty' => true,
        'fields' => 'ids'
    ));

    $all_cats = get_terms(array(
        'taxonomy' => 'category',
        'hide_empty' => false,
        'fields' => 'ids'
    ));

    $empty_cat_ids = array_diff($all_cats, $empty_cats);

    foreach ($empty_cat_ids as $cat_id) {
        wp_delete_term($cat_id, 'category');
    }
}

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

  • get_terms с hide_empty => true возвращает категории с записями.
  • С вызовом hide_empty => false — все категории.
  • Разница — это пустые категории.
  • Функция wp_delete_term удаляет указанные категории.

Автоматический запуск через WP-Cron

Чтобы не запускать функцию вручную, можно добавить задачу в планировщик WordPress WP-Cron. Например, раз в сутки:

function wpfaq_schedule_delete_empty_categories() {
    if (!wp_next_scheduled('wpfaq_daily_empty_cat_cleanup')) {
        wp_schedule_event(time(), 'daily', 'wpfaq_daily_empty_cat_cleanup');
    }
}
add_action('wp', 'wpfaq_schedule_delete_empty_categories');

add_action('wpfaq_daily_empty_cat_cleanup', 'wpfaq_delete_empty_categories');

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

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

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

  • Term Management Tools — позволяет массово удалять, переносить и сливать категории и другие таксономии.
  • Bulk Delete — позволяет удалять термины, включая категории, по разным критериям, в том числе пустые.

Оба плагина доступны в репозитории WordPress и просты в использовании.

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

После установки и активации плагина Bulk Delete:

  1. Перейдите в Bulk WP > Bulk Delete в админ-панели.
  2. Выберите «Categories» в разделе «Delete Terms».
  3. Отметьте опцию «Delete empty categories».
  4. Нажмите «Bulk Delete Now» для удаления пустых категорий.

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

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

При удалении категорий важно помнить:

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

Заключение и рекомендации

Удаление пустых категорий — эффективный способ поддерживать порядок и улучшать SEO вашего сайта на WordPress. Для автоматизации задачи можно использовать приведенный код с WP-Cron или специализированные плагины, например, Bulk Delete.

Если вы хотите расширить функциональность и настроить более гибкое управление категориями, обратите внимание на плагины из WPShop.ru, где представлены проверенные инструменты для оптимизации и управления WordPress.

WooCommerce: автоматическое изменение статуса заказа при оплате Почтой России
19.05.2026
WooCommerce: решение проблемы с исчезновением SKU после изменения атрибутов товара
23.05.2026
Как использовать REST API для управления пользователями в WordPress
21.03.2026
Как автоматически удалять старые автосохраняемые черновики в WordPress
17.12.2025
Как автоматически удалять спам комментарии в WordPress
12.03.2026