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

|

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

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

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

Основные проблемы пустых терминов:

Автоматизация очистки помогает поддерживать порядок и экономит время.

Как найти пустые термины в WordPress: запросы и функции

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

Пример функции, которая возвращает все пустые термины для заданной таксономии:

function wppremium_get_empty_terms($taxonomy = 'category') {
    $empty_terms = get_terms(array(
        'taxonomy' => $taxonomy,
        'hide_empty' => true,
        'fields' => 'ids',
    ));

    // get_terms с hide_empty=true вернёт только термины с count > 0, поэтому ищем вручную
    $all_terms = get_terms(array(
        'taxonomy' => $taxonomy,
        'hide_empty' => false,
        'fields' => 'all',
    ));

    $empty_terms = array();
    foreach ($all_terms as $term) {
        if ($term->count == 0) {
            $empty_terms[] = $term;
        }
    }
    return $empty_terms;
}

Здесь мы сначала получаем все термины без исключения пустых, затем фильтруем по count == 0.

Как автоматически удалять пустые термины: пример кода для functions.php

Удаление терминов в WordPress происходит с помощью функции wp_delete_term(). Ниже пример функции, которая удаляет все пустые категории:

function wppremium_delete_empty_terms($taxonomy = 'category') {
    $empty_terms = wppremium_get_empty_terms($taxonomy);
    foreach ($empty_terms as $term) {
        wp_delete_term($term->term_id, $taxonomy);
    }
}

// Для автоматического запуска, например, при активации темы или плагина
// add_action('after_setup_theme', function() {
//     wppremium_delete_empty_terms('category');
// });

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

Добавление автоматической очистки через WP-Cron

Создадим задачу, которая будет запускаться раз в сутки:

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

add_action('wppremium_cleanup_empty_terms_hook', function() {
    wppremium_delete_empty_terms('category');
    wppremium_delete_empty_terms('post_tag');
});

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

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

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

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

Особенности удаления терминов в кастомных таксономиях

Если у вас на сайте используются кастомные таксономии, например, «product_cat» для WooCommerce или свои собственные, методика та же, но важно указать правильное имя таксономии.

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

wppremium_delete_empty_terms('product_cat');

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

Резюме и рекомендации

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

Рекомендуется:

Таким образом, вы избавитесь от мусора в базе данных и улучшите производительность и SEO вашего WordPress-сайта.

WooCommerce: автоматическое удаление неактивных корзин и заказов
15.05.2026
Как создать главный вывод текстовой информации в WordPress без плагинов
22.01.2026
Как автоматизировать удаление спама в комментариях WordPress
05.02.2026
Решение проблемы: WooCommerce не отправляет письма подтверждения заказов
26.04.2026
Как создать собственный виджет WordPress с помощью плагинов и кода
01.11.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее