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

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

Что такое таксономии в WordPress и зачем их удалять

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

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

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

Как определить, какие таксономии не используются

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

1. Проверка через админку WordPress

В разделе «Записи» или «Произвольные типы записей» проверьте наличие таксономий в боковой панели. Если таксономия есть, но не содержит ни одной записи, вероятно, она не используется.

2. Использование SQL-запросов к базе данных

Можно выполнить запрос для подсчёта количества записей, связанных с таксономией. Например, для таксономии с именем my_taxonomy:

SELECT COUNT(*) FROM wp_term_relationships tr
JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'my_taxonomy';

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

3. Плагины для анализа таксономий

Существует несколько плагинов, которые помогают выявить неиспользуемые таксономии, например, WP Unused Taxonomies. Они показывают список всех таксономий и количество связанных с ними записей.

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

Удаление таксономий в WordPress требует аккуратности, чтобы не нарушить работу сайта. Таксономии можно удалить следующим образом:

1. Отмена регистрации таксономии

Таксономии регистрируются с помощью функции register_taxonomy. Чтобы удалить таксономию, нужно перестать её регистрировать. Найдите в теме или плагинах код, где вызывается register_taxonomy для нужной таксономии, и закомментируйте или удалите его.

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

2. Очистка данных из базы

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

DELETE tt, tr, t FROM wp_term_taxonomy tt
LEFT JOIN wp_term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'my_taxonomy';

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

3. Использование WP-CLI для удаления таксономий

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

wp term list my_taxonomy --field=term_id | xargs -n1 -I % wp term delete my_taxonomy % --force

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

Пример функции для автоматического удаления неиспользуемых таксономий (wpcourse)

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

function wpcourse_remove_unused_taxonomies() {
    $taxonomies = get_taxonomies([], 'names');
    foreach ($taxonomies as $taxonomy) {
        $terms = get_terms([
            'taxonomy' => $taxonomy,
            'hide_empty' => false,
        ]);
        foreach ($terms as $term) {
            if ($term->count === 0) {
                wp_delete_term($term->term_id, $taxonomy);
            }
        }
    }
}

// Запуск функции один раз
// wpcourse_remove_unused_taxonomies();

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

Рекомендации и полезные плагины для работы с таксономиями

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

  • Clearfy Pro — помогает оптимизировать работу сайта, в том числе контролировать неиспользуемые элементы WordPress. Подробнее на официальной странице.
  • Custom Post Type UI — удобный плагин для создания и управления таксономиями и типами записей.
  • WP Optimize — плагин для очищения базы данных, который может помочь удалить устаревшие таксономии и термины.

Используя эти инструменты и рекомендации, вы сможете поддерживать вашу WordPress-систему в чистоте и порядке, что положительно скажется на производительности и удобстве администрирования.

Как сделать автоматическое удаление старых черновиков в WordPress
27.02.2026
Как отключить отправку email уведомлений в WordPress без плагинов
23.12.2025
Как запретить изменение стоимости товара в WooCommerce после оформления заказа
30.05.2026
Как избежать конфликтов между плагинами в WordPress: диагностика и решение
13.06.2026
Как удалить верстку WordPress без потери функциональности
29.11.2025

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас