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

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

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

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

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

  • Сократить размер базы данных;
  • Уменьшить количество запросов SQL;
  • Облегчить администрирование сайта;
  • Улучшить производительность и время отклика.

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

Для начала нужно получить список всех зарегистрированных таксономий. Это можно сделать с помощью функции get_taxonomies(). Для проверки, используются ли таксономии, достаточно проверить наличие связанных с ними терминов.

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

function clearfy_get_unused_taxonomies() {
    $taxonomies = get_taxonomies([], 'objects');
    $unused = [];
    foreach ($taxonomies as $taxonomy) {
        $count = wp_count_terms($taxonomy->name);
        if (is_wp_error($count)) {
            continue;
        }
        if ($count === 0) {
            $unused[] = $taxonomy->name;
        }
    }
    return $unused;
}

// Выводим неиспользуемые таксономии
$unused_taxonomies = clearfy_get_unused_taxonomies();
echo 'Неиспользуемые таксономии: ' . implode(', ', $unused_taxonomies);

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

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

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

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

global $wpdb;
$taxonomy = 'old_taxonomy';

// Удаляем связи терминов с объектами
$wpdb->query($wpdb->prepare(
    "DELETE FROM {$wpdb->term_relationships} WHERE term_taxonomy_id IN (
        SELECT term_taxonomy_id FROM {$wpdb->term_taxonomy} WHERE taxonomy = %s
    )",
    $taxonomy
));

// Удаляем записи из term_taxonomy
$wpdb->delete($wpdb->term_taxonomy, ['taxonomy' => $taxonomy]);

// Можно также удалить термины, если они не используются в других таксономиях
$wpdb->query("DELETE FROM {$wpdb->terms} WHERE term_id NOT IN (SELECT term_id FROM {$wpdb->term_taxonomy})");

Важно делать полную резервную копию базы данных перед выполнением подобных операций. Альтернативно, можно использовать плагин Clearfy Pro, который предлагает функции для оптимизации и удаления неиспользуемых записей, включая таксономии. Подробнее о возможностях: Clearfy Pro на WPSHOP.

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

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

Пример команды для удаления таксономии (замените old_taxonomy на нужную):

wp db query "DELETE FROM wp_term_relationships WHERE term_taxonomy_id IN (SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE taxonomy = 'old_taxonomy');"
wp db query "DELETE FROM wp_term_taxonomy WHERE taxonomy = 'old_taxonomy';"
wp db query "DELETE FROM wp_terms WHERE term_id NOT IN (SELECT term_id FROM wp_term_taxonomy);"

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

Плюсы использования WP-CLI

  • Быстрое выполнение команд;
  • Автоматизация процесса;
  • Возможность включить в скрипты для регулярной очистки.

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

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

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

Соблюдение этих простых правил поможет сохранить базу данных чистой и избежать проблем с производительностью.

Заключение

Удаление неиспользуемых таксономий — важная задача для оптимизации WordPress-сайта. С помощью приведённых выше способов можно выявить и безопасно удалить лишние таксономии, что положительно скажется на скорости и удобстве работы с сайтом. Если вы хотите автоматизировать процесс и получить дополнительные возможности, рекомендуем обратить внимание на Clearfy Pro, плагин от разработчиков clearfy.ru.

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

⭐⭐⭐⭐⭐
Как удалить пустые термины в таксономиях WordPress для оптимизации базы данных
20.01.2026
Как удалить или изменить атрибуты связанных товаров в WooCommerce
25.04.2026
Как удалить или изменить переадресации в WordPress: практические решения
25.12.2025
Как создать динамический шорткод в WordPress: подробное руководство
14.11.2025
Как удалить неиспользуемые таблицы в базе данных WordPress для оптимизации
30.01.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее