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

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

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

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

  • Засорение базы данных — лишние записи увеличивают размер таблиц.
  • Ошибки и путаница при выводе списков таксономий в админке.
  • Влияние на SEO — поисковые системы могут индексировать пустые категории или теги.
  • Сложность в управлении контентом.

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

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

Поиск пустых терминов можно начать в стандартной админке. Для этого перейдите в раздел Записи > Рубрики или Записи > Метки. Здесь вы увидите столбец "Количество", который показывает, сколько записей связано с каждым термином.

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

Удаление пустых терминов с помощью SQL-запроса

Если у вас есть доступ к базе данных через phpMyAdmin или другой инструмент, можно удалить пустые термины напрямую запросом. В WordPress термины хранятся в таблицах wp_terms, wp_term_taxonomy и wp_term_relationships. Чтобы удалить пустые, нужно найти термины у которых count в wp_term_taxonomy равен нулю.

Пример SQL-запроса для удаления пустых терминов (категорий, тегов и кастомных таксономий):

DELETE t, tt FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.count = 0;

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

Что делает этот запрос?

  • Соединяет таблицы wp_terms и wp_term_taxonomy по term_id.
  • Фильтрует термины с count = 0, то есть неиспользуемые.
  • Удаляет записи из обеих таблиц, чтобы не оставалось "битых" ссылок.

Программное удаление пустых терминов с помощью PHP

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

function wpbook_delete_empty_terms() {
    $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);
            }
        }
    }
}

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

Пример использования через WP-Cron

Чтобы регулярно очищать базу, можно добавить планировщик:

add_action('wpbook_cron_delete_empty_terms', 'wpbook_delete_empty_terms');

if (!wp_next_scheduled('wpbook_cron_delete_empty_terms')) {
    wp_schedule_event(time(), 'daily', 'wpbook_cron_delete_empty_terms');
}

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

Плагины для удаления пустых терминов

Если не хотите писать код, можно использовать готовые решения. Вот несколько полезных плагинов:

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

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

Заключение: рекомендации по регулярной очистке и оптимизации

Поддержание базы данных в чистоте — важная часть администрирования WordPress. Удаление пустых терминов помогает избежать накопления "мусора" и повысить производительность сайта. Регулярно проверяйте таксономии на предмет пустых терминов и используйте автоматические скрипты или плагины для их удаления.

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

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

⭐⭐⭐⭐⭐
Как избежать проблем с пересекающимися правилами в WooCommerce
03.05.2026
Как создать собственный шорткод в WordPress: практическое руководство
04.11.2025
Автоматическое создание резервных копий базы данных WordPress без плагинов
27.12.2025
Как создать автоматический импорт постов из внешнего JSON в WordPress
01.04.2026
Как автоматически отключать плагины по расписанию в WordPress
27.02.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее