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

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

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

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

Удаление таких таксономий помогает:

  • Ускорить работу сайта;
  • Снизить размер базы данных;
  • Упростить структуру контента;
  • Избежать конфликтов с новыми плагинами.

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

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

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

Для получения всех таксономий используйте функцию get_taxonomies() с параметром 'public' => true, чтобы получить только публичные таксономии. Затем для каждой таксономии можно проверить количество связанных с ней записей.

function wplab_get_unused_taxonomies() {
    $unused = [];
    $taxonomies = get_taxonomies(['public' => true], 'objects');

    foreach ($taxonomies as $taxonomy) {
        $count = wp_count_terms($taxonomy->name);
        if ($count === 0) {
            $unused[] = $taxonomy->name;
        }
    }

    return $unused;
}

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

Проверка использования таксономий в коде и плагинах

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

  • Провести поиск по проекту (IDE или grep) по названию таксономии;
  • Оценить, не влияет ли удаление на функционал сайта;
  • Сделать резервную копию базы данных на всякий случай.

Удаление неиспользуемых таксономий программно

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

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

  1. Удалить термины таксономии из базы;
  2. Прекратить регистрацию таксономии (удалить или закомментировать код регистрации в теме или плагине);
  3. Очистить данные из таблиц базы.

Пример удаления всех терминов таксономии:

function wplab_delete_taxonomy_terms($taxonomy) {
    $terms = get_terms([
        'taxonomy' => $taxonomy,
        'hide_empty' => false,
        'fields' => 'ids'
    ]);

    if (!empty($terms) && !is_wp_error($terms)) {
        foreach ($terms as $term_id) {
            wp_delete_term($term_id, $taxonomy);
        }
    }
}

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

wplab_delete_taxonomy_terms('my_custom_taxonomy');

После этого вы можете удалить или отключить регистрацию таксономии в коде.

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

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

  • WP Term Management Tools — позволяет массово удалять, переносить и объединять термины;
  • Taxonomy Manager — удобный интерфейс для управления таксономиями и терминами;
  • Advanced Database Cleaner — помогает находить и удалять неиспользуемые данные, включая таксономии;

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

Пример использования WP Term Management Tools

После установки и активации плагина перейдите в раздел «Инструменты» > «Term Management», выберите таксономии с пустыми терминами и удалите их массово.

Оптимизация базы данных после удаления таксономий

После удаления таксономий и терминов рекомендуется оптимизировать базу данных. Для этого можно использовать плагин WP-Optimize или выполнить SQL-запросы напрямую.

Например, удаление записей из таблиц wp_term_taxonomy и wp_terms, которые не используются, можно выполнить так:

DELETE tt, t
FROM wp_term_taxonomy tt
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'my_custom_taxonomy';

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

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

Если у вас есть доступ к командной строке сервера, WP-CLI значительно упрощает работу с таксономиями.

Команда для получения списка всех таксономий:

wp taxonomy list --format=table

Проверить количество терминов в таксономии можно через пользовательский скрипт или с помощью SQL-запросов.

Автоматизация удаления терминов:

wp term delete my_custom_taxonomy $(wp term list my_custom_taxonomy --field=term_id)

Это удалит все термины таксономии my_custom_taxonomy.

Выводы и рекомендации

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

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

Как автоматически удалять автоматические отзывы в WordPress
11.04.2026
Как использовать хуки WooCommerce для добавления дополнительной логики в заказы
03.06.2026
Как удалить автоматически созданные изображения в WordPress
31.12.2025
Как отключить Emoji в WordPress для ускорения сайта
23.01.2026
Как отключить XML-RPC в WordPress для защиты сайта
04.03.2026