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

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

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

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

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

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

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

WordPress предоставляет функцию get_terms(), с помощью которой можно получить список категорий с параметром 'hide_empty' => true — в этом случае возвращаются только категории, в которых есть записи. Чтобы найти пустые категории, нужно получить все категории с 'hide_empty' => false и проверить у каждой поле count. Если оно равно нулю — категория пустая.

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

function wpacademy_delete_empty_categories() {
    $empty_categories = get_terms(array(
        'taxonomy' => 'category',
        'hide_empty' => false,
        'fields' => 'ids'
    ));

    foreach ($empty_categories as $cat_id) {
        $term = get_term($cat_id);
        if ($term && $term->count === 0) {
            wp_delete_term($cat_id, 'category');
        }
    }
}
// Запускаем функцию один раз, например, через admin_init или WP-CLI
add_action('admin_init', 'wpacademy_delete_empty_categories');

В этом коде мы получаем ID всех категорий, затем для каждой категории проверяем количество записей и удаляем те, у которых счетчик равен нулю.

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

Если на сайте часто появляются и удаляются категории, удобно автоматизировать очистку. Можно добавить ежедневное задание через WP-Cron:

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

add_action('wpacademy_delete_empty_categories_hook', 'wpacademy_delete_empty_categories');

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

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

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

  • Term Management Tools — расширяет возможности управления терминами, позволяет массово удалять категории.
  • Clearfy Pro — многофункциональный плагин для оптимизации WordPress, в том числе помогает с очисткой и оптимизацией таксономий.

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

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

  • Перед удалением записей проверяйте, не останется ли категория пустой
  • Используйте вложенные категории с умом, чтобы не создавать избыточные ветви
  • Периодически проверяйте структуру сайта и удаляйте устаревшие категории

Для разработчиков полезно интегрировать функцию очистки в административный интерфейс или использовать WP-CLI для быстрого обслуживания.

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

Удаление пустых категорий — важный элемент поддержания чистоты и оптимизации сайта на WordPress. Использование приведённого кода позволяет быстро и безопасно очищать таксономии без сторонних плагинов или ручного труда. Для более удобного управления рекомендуются плагины с расширенными функциями, например, Clearfy Pro. Автоматизация процессов через WP-Cron или WP-CLI значительно упростит обслуживание сайта в долгосрочной перспективе.

Как использовать WPGeneratePress для оптимальной настройки темы WordPress
16.12.2025
Как сделать автоматическое удаление заказов WooCommerce после 30 дней
10.05.2026
Как создать автоматический импорт данных из Google Sheets в WordPress
09.02.2026
Как использовать WPCommunity для создания форума на WordPress
05.02.2026
Автоматическое удаление завершённых заказов WooCommerce через PHP
05.06.2026