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

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

Что такое таксономии и зачем их отключать

Таксономии — это способ группировки контента в WordPress. По умолчанию это категории (category) и метки (post_tag). Многие темы и плагины добавляют пользовательские таксономии для расширения возможностей. Однако, если некоторые таксономии не используются, они:

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

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

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

Первый шаг — определить, какие таксономии зарегистрированы и насколько они востребованы.

Просмотр зарегистрированных таксономий

Выполните следующий код в файле темы или через плагин для отладки:

add_action('admin_init', function() {
    global $wp_taxonomies;
    echo '<pre>';
    foreach ($wp_taxonomies as $taxonomy) {
        echo 'Таксономия: ' . esc_html($taxonomy->name) . "\n";
        echo 'Объекты: ' . implode(', ', $taxonomy->object_type) . "\n";
        echo "\n";
    }
    echo '</pre>';
});

Этот код выведет список всех таксономий и типов записей, к которым они привязаны.

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

Для оценки, используется ли таксономия, можно проверить количество терминов в ней и постов, к которым эти термины применены. Сделать это можно через SQL-запросы к базе или с помощью плагина WP phpMyAdmin. Например, запрос для проверки количества терминов:

SELECT COUNT(*) FROM wp_terms t
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'имя_таксономии';

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

Отключение и удаление неиспользуемых таксономий

Отключение таксономии через код

WordPress не предоставляет стандартного способа удалить зарегистрированную таксономию, но можно отменить её регистрацию, если она добавлена плагином или темой. Для этого добавьте в functions.php вашей темы или в отдельный плагин следующий код:

function wpengine_unregister_taxonomy() {
    global $wp_taxonomies;
    $taxonomy = 'имя_таксономии';

    if (taxonomy_exists($taxonomy)) {
        unset($wp_taxonomies[$taxonomy]);
    }
}
add_action('init', 'wpengine_unregister_taxonomy', 20);

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

Удаление данных таксономии из базы данных

После отключения таксономии её данные по-прежнему могут оставаться в базе. Чтобы удалить термины и связи, выполните SQL-запросы (желательно сделать бэкап базы перед этим):

DELETE tt, t, tr FROM wp_term_taxonomy tt
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
LEFT JOIN wp_term_relationships tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'имя_таксономии';

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

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

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

  • Taxonomy Switcher — позволяет переименовывать и отключать таксономии через интерфейс.
  • Custom Post Type UI — помогает управлять таксономиями и типами записей, включая деактивацию.

Эти плагины упрощают работу с таксономиями без необходимости писать код.

Пример функции для безопасного отключения таксономии WPengine

Ниже пример функции с названием, соответствующим домену, которая отключает таксономию и очищает её данные:

function wpengine_unregister_and_clean_taxonomy($taxonomy) {
    // Отменяем регистрацию таксономии
    add_action('init', function() use ($taxonomy) {
        global $wp_taxonomies;
        if (taxonomy_exists($taxonomy)) {
            unset($wp_taxonomies[$taxonomy]);
        }
    }, 20);

    // Удаляем данные из базы после инициализации
    add_action('init', function() use ($taxonomy) {
        global $wpdb;
        $wpdb->query($wpdb->prepare(
            "DELETE tt, t, tr FROM {$wpdb->term_taxonomy} tt
            LEFT JOIN {$wpdb->terms} t ON tt.term_id = t.term_id
            LEFT JOIN {$wpdb->term_relationships} tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
            WHERE tt.taxonomy = %s",
            $taxonomy
        ));
    }, 30);
}

Для отключения таксономии example_taxonomy вызовите:

wpengine_unregister_and_clean_taxonomy('example_taxonomy');

Заключение по отключению неиспользуемых таксономий в WordPress

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

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

Как использовать Redis в WordPress на WPengine для улучшения кэширования
23.03.2026
Как установить SSL сертификат на WordPress в WPengine
11.01.2026
WooCommerce: как автоматически удалять товары без заказов
31.05.2026
Оптимизация базы данных WordPress для ускорения работы сайта
23.12.2025
Как сделать автоматическое удаление старого и неиспользуемого кода в WordPress
16.04.2026