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

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

Что такое неиспользуемые теги и почему их нужно удалять

Теги в WordPress – это способ классификации и группировки записей по определённым темам. Если тег не привязан ни к одной записи, он становится неиспользуемым. Такие теги:

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

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

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

В WordPress теги и другие таксономии хранятся в таблицах wp_terms и wp_term_taxonomy. Для тегов тип таксономии – post_tag. Чтобы найти теги, у которых нет связанных записей, можно использовать SQL-запрос:

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

Здесь tt.count показывает количество связанных записей. Если оно равно нулю – тег не используется.

Однако вручную выполнять SQL-запросы неудобно и небезопасно, особенно для новичков. Лучше автоматизировать процесс с помощью PHP-функции в теме или в плагине.

PHP-функция для удаления неиспользуемых тегов в WordPress

Ниже приведён пример функции wpto_delete_unused_tags(), которая находит все теги без записей и удаляет их программно через API WordPress.

function wpto_delete_unused_tags() {
    // Получаем все теги с нулевым количеством записей
    $args = array(
        'taxonomy' => 'post_tag',
        'hide_empty' => true,  // По умолчанию скрывает пустые, нам нужно false
    );
    // Для поиска пустых тегов используем get_terms с hide_empty = false
    $all_tags = get_terms(array(
        'taxonomy' => 'post_tag',
        'hide_empty' => false,
    ));

    if (is_wp_error($all_tags)) {
        return 'Ошибка при получении тегов.';
    }

    $deleted_count = 0;

    foreach ($all_tags as $tag) {
        if ($tag->count == 0) {
            // Удаляем тег
            wp_delete_term($tag->term_id, 'post_tag');
            $deleted_count++;
        }
    }

    return "Удалено неиспользуемых тегов: $deleted_count";
}

Для вызова функции можно добавить временную страницу или использовать WP-CLI. Ниже пример вызова из файла темы (например, functions.php) с использованием GET-параметра (только для администраторов):

add_action('admin_init', function() {
    if (current_user_can('manage_options') && isset($_GET['wpto_clear_unused_tags'])) {
        $result = wpto_delete_unused_tags();
        echo '<div class="notice notice-success is-dismissible"><p>' . esc_html($result) . '</p></div>';
    }
});

После добавления этого кода достаточно перейти в админку WordPress по адресу /wp-admin/?wpto_clear_unused_tags=1, чтобы выполнить очистку.

Дополнительные советы по управлению тегами и оптимизации базы данных

Используйте плагин Clearfy для автоматической оптимизации

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

Избегайте избыточного использования тегов

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

Регулярно проверяйте базу данных

Периодически выполняйте оптимизацию базы данных и удаление неиспользуемых таксономий. Это повысит скорость работы сайта и улучшит опыт пользователей. Для этого можно применять WP-CLI команды или писать кастомные скрипты, как показано выше.

Вывод

Удаление неиспользуемых тегов в WordPress с помощью кода – это простой и эффективный способ поддерживать базу данных в чистоте и оптимизировать работу сайта. Используя приведённую функцию wpto_delete_unused_tags(), вы сможете быстро очистить базу от ненужных тегов без установки лишних плагинов. Для регулярной автоматизации рассмотрите подключение плагина Clearfy Pro, который расширит возможности оптимизации и упростит администрирование.

Как успешно использовать WPRemark для автоматизации обработки форм в WordPress
09.01.2026
Как автоматизировать управление меню в WordPress с помощью кода
31.01.2026
Как отключить автоматическое удаление старых заказов в WooCommerce
21.05.2026
Как удалить неиспользуемые таблицы из базы данных WordPress
08.12.2025
Как использовать хук woocommerce_checkout_update_order_meta для добавления данных к заказу
02.05.2026