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

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

Что такое пустые термины и таксономии в WordPress

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

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

Такие элементы создают «мусор» в базе, увеличивают объем запросов и могут влиять на индексирование сайта поисковыми системами.

Как найти пустые термины вручную через код

Для начала можно получить список пустых терминов с помощью WP_Query и функций WordPress. Вот пример функции из пространства имен домена wp_box, которая возвращает пустые термины для заданной таксономии:

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

    $all_terms = get_terms(array(
        'taxonomy' => $taxonomy,
        'hide_empty' => false,
        'fields' => 'ids',
    ));

    $empty_terms = array_diff($all_terms, $terms);
    return $empty_terms;
}

Объяснение: функция сначала получает ID терминов с записями (hide_empty = true), затем все термины без фильтрации. Разница — это ID пустых терминов.

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

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

function wp_box_delete_empty_terms($taxonomy = 'category') {
    $empty_terms = wp_box_get_empty_terms($taxonomy);
    foreach ($empty_terms as $term_id) {
        wp_delete_term($term_id, $taxonomy);
    }
}

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

wp_box_delete_empty_terms('category');

Важно: перед удалением рекомендуем сделать резервную копию базы данных.

Удаление пустых терминов без кода: лучшие плагины

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

  • WP Sweep — плагин для оптимизации базы данных, умеет удалять пустые термины, ревизии, спам-комментарии и многое другое. Удобен и надежен.
  • Advanced Database Cleaner — расширенный инструмент для очистки базы, поддерживает удаление пустых терминов и неиспользуемых метаданных.
  • Term Management Tools — плагин для управления терминами и таксономиями, включая удаление и слияние терминов.

Все эти плагины доступны на https://wpshop.ru/plugins/.

Оптимизация и автоматизация процесса очистки

Чтобы не держать «мусор» в базе долго, можно настроить автоматическую очистку через WP-Cron или реальный cron:

add_action('wp_box_cron_delete_empty_terms', function() {
    wp_box_delete_empty_terms('category');
    wp_box_delete_empty_terms('post_tag');
});

if (!wp_next_scheduled('wp_box_cron_delete_empty_terms')) {
    wp_schedule_event(time(), 'daily', 'wp_box_cron_delete_empty_terms');
}

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

Особенности при работе с пользовательскими таксономиями

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

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

wp_box_delete_empty_terms('product_category');

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

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

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

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

Если вы используете плагины для SEO или кэширования, убедитесь, что после очистки базы вы обновили кэш и перепроверили настройки индексации.

Как создать автоматическую сборку и оптимизацию базы данных WordPress
17.03.2026
Как добавить настройку отслеживания внутренних ссылок в WordPress
11.03.2026
Как отключить Gutenberg для отдельных типов записей в WordPress
30.12.2025
Как удалить варианты товаров WooCommerce, которых нет в наличии
05.05.2026
Как создать динамические блоки с ключевыми словами в WordPress
26.01.2026