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

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

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

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

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

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

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

Категории в WordPress — это таксономия типа category. Каждая категория хранит количество публикаций в поле count. Если это значение равно 0, значит в категории нет записей.

Для быстрого просмотра пустых категорий можно использовать SQL-запрос к базе данных:

SELECT term_id, name FROM wp_terms t
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE taxonomy = 'category' AND tt.count = 0;

Но лучше автоматизировать процесс удаления через PHP-код.

Удаление пустых категорий через пользовательскую функцию в functions.php

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

function wpdream_remove_empty_categories() {
    // Получаем все категории с count = 0
    $empty_cats = get_categories(array(
        'hide_empty' => true, // true скрывает пустые, поэтому ставим false
        'fields' => 'ids',
        'hide_empty' => false
    ));

    $deleted_count = 0;
    foreach ($empty_cats as $cat_id) {
        $category = get_category($cat_id);
        if ($category->count == 0) {
            wp_delete_category($cat_id);
            $deleted_count++;
        }
    }
    return $deleted_count;
}

Чтобы запустить функцию, добавьте в конце файла functions.php такой вызов (только на время):

add_action('admin_init', function() {
    $deleted = wpdream_remove_empty_categories();
    if ($deleted) {
        echo '<div class="notice notice-success is-dismissible">Удалено пустых категорий: ' . $deleted . '</div>';
    }
});

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

Пояснения к коду

Мы получаем все категории (даже пустые) с помощью get_categories с параметром hide_empty => false. Далее перебираем и проверяем поле count, чтобы удостовериться, что категория действительно пуста. Затем вызываем wp_delete_category(), которая удаляет категорию из базы.

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

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

wp term list category --field=term_id --hide_empty=false | while read term_id; do
    count=$(wp term get category $term_id --field=count)
    if [ "$count" -eq 0 ]; then
        wp term delete category $term_id
        echo "Удалена категория с ID: $term_id"
    fi
done

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

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

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

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

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

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

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

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

Заключение

Удаление пустых категорий — простой, но важный шаг в поддержании чистоты структуры сайта на WordPress. Использование пользовательских функций позволяет быстро и безопасно избавиться от ненужных категорий без установки дополнительных плагинов. Если же вы предпочитаете интерфейсные решения, обратите внимание на Clearfy Pro и другие инструменты из каталога WPSHOP.

Как удалить ненужные стили и скрипты в WordPress для ускорения сайта
30.11.2025
Как установить автоматический редирект на новый URL в WordPress
06.03.2026
Как использовать Transients в WordPress для кэширования данных
25.12.2025
Как удалить пустые тексты и пустые блоки в WordPress без плагинов
11.05.2026
Как автоматически отключать неиспользуемые плагины WordPress для оптимизации сайта
10.03.2026