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

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

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

Пустые категории — это категории, в которых нет ни одной записи. Они:

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

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

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

Для начала полезно узнать, какие категории являются пустыми. В WordPress у каждой категории есть поле count, показывающее количество записей в ней.

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

function wpmagazin_get_empty_categories() {
    $empty_cats = get_categories(array(
        'hide_empty' => true,
        'fields' => 'ids'
    ));
    $all_cats = get_categories(array(
        'hide_empty' => false,
        'fields' => 'ids'
    ));
    $empty = array_diff($all_cats, $empty_cats);
    return $empty;
}

$empty_categories = wpmagazin_get_empty_categories();
foreach ($empty_categories as $cat_id) {
    $category = get_category($cat_id);
    echo 'Пустая категория: ' . esc_html($category->name) . ' (ID: ' . $cat_id . ')<br>';
}

Этот код сравнивает все категории с теми, которые содержат записи, и выводит список пустых.

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

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

function wpmagazin_delete_empty_categories() {
    $empty_cats = get_categories(array(
        'hide_empty' => false,
        'fields' => 'ids'
    ));
    foreach ($empty_cats as $cat_id) {
        $category = get_category($cat_id);
        if (0 === (int) $category->count) {
            wp_delete_category($cat_id);
        }
    }
}

// Запускаем при необходимости, например, через хук или вручную
// wpmagazin_delete_empty_categories();

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

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

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

Пример добавления задачи WP-Cron для запуска очистки раз в неделю:

function wpmagazin_schedule_empty_cat_cleanup() {
    if (!wp_next_scheduled('wpmagazin_empty_cat_cleanup_event')) {
        wp_schedule_event(time(), 'weekly', 'wpmagazin_empty_cat_cleanup_event');
    }
}
add_action('wp', 'wpmagazin_schedule_empty_cat_cleanup');

add_action('wpmagazin_empty_cat_cleanup_event', 'wpmagazin_delete_empty_categories');

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

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

Если вы предпочитаете готовые решения, обратите внимание на плагины:

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

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

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

В идеале стоит минимизировать создание пустых категорий. Для этого:

  • Перед созданием категории продумывайте структуру и назначение.
  • Удаляйте категории сразу после удаления записей в них.
  • Автоматизируйте очистку с помощью WP-Cron и кастомных функций.

Если ваш сайт использует плагин Clearfy Pro, там есть инструменты для оптимизации таксономий и управления категориями, которые помогут поддерживать порядок.

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

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

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

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

Как удалить или отключить комментарии в WordPress на определённых страницах
17.01.2026
Как удалить неиспользуемые таксономии в WordPress
22.02.2026
Как использовать meta-заголовки для управления отображением страниц WordPress
02.02.2026
Как создать собственный виджет в WordPress с примером кода
28.12.2025
WooCommerce: как отключить категории и товары из поиска и фильтров
25.05.2026