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

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

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

Пустые категории не несут ценности для посетителей и мешают держать сайт чистым. Они могут:

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

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

Как найти пустые категории через админку WordPress

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

Для автоматизации процесса оптимально использовать код, который удалит все пустые категории за одну операцию.

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

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

function wpcource_delete_empty_categories() {
    // Получаем все категории
    $categories = get_categories(array(
        'hide_empty' => true, // Получаем только категории с записями
        'fields' => 'ids'      // Нам нужны только ID
    ));

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

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

    if (!empty($empty_categories)) {
        foreach ($empty_categories as $cat_id) {
            wp_delete_category($cat_id);
        }
        echo 'Удалено пустых категорий: ' . count($empty_categories);
    } else {
        echo 'Пустых категорий не найдено';
    }
}
// Запустите функцию один раз, например, через админку
// wpcource_delete_empty_categories();

Важно: функцию wpcource_delete_empty_categories() не стоит запускать автоматически на каждом запросе, так как удаление категорий — операция, требующая контроля. Запускайте ее вручную или через WP-CLI.

Как безопасно запустить код

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

Альтернативный способ: использование WP-CLI

Если у вас есть доступ к консоли сервера, проще и удобнее использовать WP-CLI — мощный инструмент для управления WordPress из командной строки.

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

wp term list category --field=term_id --hide_empty=0 | xargs -I % wp term delete category %

Эта команда сначала выводит все категории, включая пустые (--hide_empty=0), затем удаляет их по ID. Будьте осторожны и лучше предварительно сделать бэкап базы данных.

Плагины для работы с категориями и таксономиями

Если вы предпочитаете использовать плагины, рекомендую Clearfy Pro. Этот плагин включает инструменты для оптимизации WordPress, среди которых удобная очистка и управление категориями, в том числе удаление пустых.

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

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

Удаление пустых категорий — простая, но важная задача для поддержания чистоты сайта и удобства управления контентом. Используйте приведенный PHP-код для быстрого удаления или WP-CLI для продвинутых пользователей. Для тех, кто предпочитает интерфейс, подойдет плагин Clearfy Pro.

Регулярно проверяйте структуру категорий, чтобы сайт оставался упорядоченным и понятным как для посетителей, так и для поисковиков.

Автоматическое удаление спам комментариев в WordPress
20.12.2025
WooCommerce: автоматическое изменение статуса заказа при возврате товара
10.06.2026
Как изменить размер и оптимизировать изображения в WordPress без плагинов
05.01.2026
Как установить ограничение на регистрацию пользователей в WordPress по IP и времени
15.03.2026
WooCommerce: автоматическое отключение отсутствующих вариантов товаров
22.06.2026

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