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

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

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

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

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

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

Пустой категорией считается та, у которой нет ни одной опубликованной записи (поста). Для проверки можно использовать функцию WordPress get_categories() с параметром hide_empty. Если установить hide_empty=0, то будут возвращены все категории, а затем можно проверить свойство category_count каждой категории.

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

$empty_cats = array_filter(get_categories(array('hide_empty' => 0)), function($cat) { return $cat->count == 0; });

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

Для удаления категории в WordPress существует функция wp_delete_category($cat_id). Мы можем написать функцию, которая будет проходить по всем пустым категориям и удалять их.

Ниже пример кода, который можно добавить в файл functions.php вашей темы или в кастомный плагин:

function wpsolution_delete_empty_categories() {
    $empty_categories = array_filter(get_categories(array('hide_empty' => 0)), function($cat) {
        return $cat->count == 0;
    });

    foreach ($empty_categories as $cat) {
        wp_delete_category($cat->term_id);
    }
}

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

Добавление безопасности и контроля

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

Также можно добавить проверку текущих прав пользователя, чтобы функция запускалась только администраторами:

function wpsolution_delete_empty_categories_safe() {
    if (!current_user_can('manage_categories')) {
        return;
    }
    wpsolution_delete_empty_categories();
}

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

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

function wpsolution_schedule_empty_cat_cleanup() {
    if (!wp_next_scheduled('wpsolution_empty_cat_cleanup_event')) {
        wp_schedule_event(time(), 'weekly', 'wpsolution_empty_cat_cleanup_event');
    }
}
add_action('wpsolution_empty_cat_cleanup_event', 'wpsolution_delete_empty_categories_safe');
add_action('wp', 'wpsolution_schedule_empty_cat_cleanup');

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

Использование плагинов для управления категориями

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

  • Clearfy Pro — оптимизирует структуру сайта, имеет инструменты для очистки категорий и таксономий.
  • Expert Review — позволяет провести аудит качества контента и выявить пустые категории и теги.

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

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

Для предотвращения появления пустых категорий стоит:

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

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

WooCommerce: как автоматически удалять товары после продажи
22.05.2026
Как отключить XML-RPC в WordPress и защитить сайт от атак
27.01.2026
Динамическая пагинация в WordPress с использованием AJAX без перезагрузки страницы
23.03.2026
Как добавить настройку автозагрузки медиафайлов в WordPress
26.02.2026
Оптимизация базы данных WordPress: удаление старых ревизий и автоматизация процесса
22.12.2025