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

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

Что такое пустующие таксономии и почему их важно удалить

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

Главные проблемы пустующих таксономий:

  • Ненужная нагрузка на базу данных. WordPress хранит данные о таксономиях в таблицах, и большое их количество замедляет выборки.
  • Запутанность интерфейса. В админке и в пользовательских фильтрах отображаются неиспользуемые термины.
  • SEO-риски. Пустые архивные страницы таксономий могут индексироваться, создавая дублирующий и низкокачественный контент.

Поэтому регулярная очистка таксономий — важная задача для оптимизации и поддержки WordPress-сайта.

Как найти пустующие таксономии в WordPress

Для начала нужно определить, какие таксономии пустуют. Сделать это можно как через SQL-запросы, так и программно на PHP.

Поиск пустых терминов через SQL

В базе данных WordPress есть таблицы wp_terms, wp_term_taxonomy и wp_term_relationships. В терминологии WordPress термин считается пустым, если count в таблице wp_term_taxonomy равен 0.

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

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

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

Поиск пустых терминов через PHP-функцию

Можно создать функцию для wpclass_delete_empty_taxonomies_get_empty_terms(), которая будет возвращать пустые термины по конкретной таксономии:

function wpclass_delete_empty_taxonomies_get_empty_terms($taxonomy) {
    $terms = get_terms([
        'taxonomy' => $taxonomy,
        'hide_empty' => true
    ]);
    $all_terms = get_terms([
        'taxonomy' => $taxonomy,
        'hide_empty' => false
    ]);

    $empty_terms = [];
    foreach ($all_terms as $term) {
        $found = false;
        foreach ($terms as $active_term) {
            if ($term->term_id === $active_term->term_id) {
                $found = true;
                break;
            }
        }
        if (!$found) {
            $empty_terms[] = $term;
        }
    }
    return $empty_terms;
}

Эта функция возвращает массив пустых терминов для указанной таксономии.

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

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

function wpclass_delete_empty_taxonomies_remove_terms($taxonomy) {
    $empty_terms = wpclass_delete_empty_taxonomies_get_empty_terms($taxonomy);
    foreach ($empty_terms as $term) {
        wp_delete_term($term->term_id, $taxonomy);
    }
}

// Пример вызова для удаления пустых категорий
wpclass_delete_empty_taxonomies_remove_terms('category');

Рекомендуется делать резервную копию базы перед массовым удалением.

Автоматизация очистки пустых таксономий с помощью WPClass Cron

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

Пример кода, который добавляет такую задачу:

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

add_action('wpclass_delete_empty_taxonomies_cron_hook', function() {
    $taxonomies = get_taxonomies(['public' => true], 'names');
    foreach ($taxonomies as $taxonomy) {
        wpclass_delete_empty_taxonomies_remove_terms($taxonomy);
    }
});

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

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

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

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

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

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

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

  • Удаляйте категории и метки сразу после удаления связанного контента.
  • Проверяйте импорты и миграции контента на предмет корректного сопоставления таксономий.
  • Используйте автоматизированные задачи для регулярной очистки, например, с помощью WPClass Cron.
  • Ограничьте создание таксономий пользователями, если это не требуется.

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

Выводы

Удаление пустующих таксономий — важный этап оптимизации WordPress-сайта. Используйте SQL-запросы и PHP-функции для поиска и удаления пустых терминов, автоматизируйте процесс с помощью WPClass Cron и используйте подходящие плагины, например Clearfy Pro, для удобства. Регулярное обслуживание таксономий улучшит скорость работы сайта и поможет избежать SEO-проблем.

WooCommerce: как автоматически удалять заказы со статусом «неоплачено»
28.05.2026
Как удалить сборку WooCommerce при удалённом заказе
21.05.2026
Как сделать автоматическое удаление нерабочих крупных изображений в WordPress
23.02.2026
Удаление неиспользуемых атрибутов и метаданных в WooCommerce: практическое руководство
28.04.2026
Как создать собственный шорткод в WordPress
04.11.2025