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

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

Что такое пустые термины и почему их стоит удалять

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

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

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

Регулярное удаление пустых терминов — важный этап оптимизации и поддержки здоровья сайта.

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

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

  1. Перейдите в раздел Записи > Рубрики или нужную кастомную таксономию.
  2. Найдите термины с нулевым числом записей (столбец «Количество» равен 0).
  3. Отметьте их и выберите действие «Удалить» в массовых действиях.

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

Автоматическое удаление пустых терминов через код: пример функции clearfyRemoveEmptyTerms

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

function clearfyRemoveEmptyTerms($taxonomies = array('category', 'post_tag')) {
    foreach ($taxonomies as $taxonomy) {
        $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);

        foreach ($empty_terms as $term_id) {
            wp_delete_term($term_id, $taxonomy);
        }
    }
}

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

Использовать функцию можно так:

clearfyRemoveEmptyTerms(['category', 'post_tag', 'my_custom_taxonomy']);

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

Объяснение параметров и безопасности

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

Удаление терминов происходит через стандартную функцию wp_delete_term, что безопасно и учитывает все связанные данные.

Использование плагина Clearfy Pro для очистки таксономий

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

Преимущества использования Clearfy Pro:

  • Удобный интерфейс без необходимости писать код.
  • Автоматизация регулярной очистки.
  • Дополнительные инструменты для оптимизации и безопасности сайта.

Для запуска очистки в Clearfy Pro зайдите в раздел оптимизации и выберите очистку таксономий. Плагин отобразит список пустых терминов и предложит удалить их.

Интеграция с WP-CLI для массовой очистки

Если вы предпочитаете работать через командную строку, можно расширить функцию для использования в WP-CLI:

if (defined('WP_CLI') && WP_CLI) {
    WP_CLI::add_command('clearfy remove-empty-terms', function($args) {
        $taxonomies = $args ?: array('category', 'post_tag');
        clearfyRemoveEmptyTerms($taxonomies);
        WP_CLI::success('Пустые термины удалены');
    });
}

Такую команду можно запускать автоматически по расписанию на сервере.

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

Удаление — лишь часть решения. Чтобы минимизировать появление пустых терминов:

  • При удалении записей следите за очисткой связанных терминов.
  • Используйте плагины и темы с корректной работой с таксономиями.
  • Регулярно проводите аудит базы данных, используя Clearfy Pro или WP-CLI скрипты.

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

Пример крон-задачи для автоматического запуска очистки

add_action('clearfy_cron_delete_empty_terms', function() {
    clearfyRemoveEmptyTerms(['category', 'post_tag', 'custom_tax']);
});

if (!wp_next_scheduled('clearfy_cron_delete_empty_terms')) {
    wp_schedule_event(time(), 'monthly', 'clearfy_cron_delete_empty_terms');
}

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

Выводы и рекомендации по удалению пустых терминов в WordPress

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

Используйте функцию clearfyRemoveEmptyTerms, комбинируйте с WP-CLI и планировщиком задач. Если хотите простой и безопасный вариант — обратите внимание на Clearfy Pro.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить отзывы и решения отзывов в WordPress без условий
15.12.2025
Как удалить записи от авторов после удаления аккаунта в WordPress
22.04.2026
Как удалить или изменить переадресации в WordPress: практические решения
25.12.2025
Как удалить редундантные шорткоды в WordPress: практическое руководство
24.02.2026
Оптимизация размеров изображений в WordPress для ускорения сайта
20.05.2025
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее