Как удалить пустые категории в WordPress: эффективные методы и примеры кода

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

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

Пустые категории создают следующие проблемы:

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

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

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

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

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

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

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

function wptem_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_cats_ids = array_diff($all_cats, $empty_cats);

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

// Запускаем удаление при необходимости
// wptem_delete_empty_categories();

В этом коде мы сначала получаем все категории, затем — только непустые. Разница — это пустые категории, которые мы удаляем функцией wp_delete_term().

Важно: вызов функции wptem_delete_empty_categories() нужно делать осторожно, например, через WP-CLI, хук или панель администратора, чтобы случайно не удалить нужные категории.

Запуск удаления по крону или вручную

Для автоматического удаления пустых категорий можно привязать функцию к планировщику WordPress (WP-Cron):

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

add_action('wptem_empty_cat_cleanup_hook', 'wptem_delete_empty_categories');
<

Так пустые категории будут удаляться автоматически раз в сутки.

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

Если вы не хотите писать код, можно использовать плагины:

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

Эти плагины облегчают работу, особенно если количество категорий большое.

Оптимизация отображения пустых категорий на сайте

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

function wptem_exclude_empty_categories_from_menu($args) {
    $args['hide_empty'] = true;
    return $args;
}
add_filter('widget_categories_args', 'wptem_exclude_empty_categories_from_menu');
add_filter('wp_list_categories_args', 'wptem_exclude_empty_categories_from_menu');

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

Советы по работе с категориями и таксономиями

Для поддержания чистоты структуры категорий придерживайтесь следующих рекомендаций:

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

Так вы сохраните структуру сайта удобной и SEO-дружественной.

Заключение

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

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

Как создать свой плагин в WordPress: практическое руководство
28.11.2025
Изменение URL для AJAX-запросов в WordPress без перезагрузки страницы
11.12.2025
Создание пользовательского виджета для панели администратора WordPress
03.02.2026
Как удалить пустые категории в WordPress: эффективные методы и примеры кода
25.12.2025
WooCommerce: автоматическое возврат средств после отмены заказа
10.06.2026