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

Пустые термины (термины без связанных записей) в WordPress — это категория, метка или любой другой термин таксономии, который не имеет ни одной связанной записи. Такие термины не только засоряют базу данных, но и могут замедлять работу сайта, особенно если таксономий и терминов много.

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

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

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

  • Оптимизировать базу данных
  • Ускорить запросы к таксономиям
  • Избавиться от бесполезного мусора в админке

Особенно полезно это при большом количестве категорий и меток.

Как найти пустые термины в WordPress

Для начала нужно понять, какие термины пустые. Сделать это можно через SQL-запрос или программно.

SQL-запрос для поиска пустых терминов

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

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

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

function wordpressy_get_empty_terms( $taxonomy ) {
    $terms = get_terms( array(
        'taxonomy' => $taxonomy,
        'hide_empty' => true
    ) );
    $all_terms = get_terms( array(
        'taxonomy' => $taxonomy,
        'hide_empty' => false
    ) );
    $empty_terms = array_diff( wp_list_pluck( $all_terms, 'term_id' ), wp_list_pluck( $terms, 'term_id' ) );
    return $empty_terms;
}

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

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

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

Удаление терминов через WP-CLI

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

wp term list taxonomy_name --field=term_id --hide_empty=0 | xargs -n1 wp term delete taxonomy_name

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

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

function wordpressy_delete_empty_terms( $taxonomy ) {
    $empty_terms = wordpressy_get_empty_terms( $taxonomy );
    foreach ( $empty_terms as $term_id ) {
        wp_delete_term( $term_id, $taxonomy );
    }
}
// Пример вызова для таксономии category
wordpressy_delete_empty_terms( 'category' );

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

Рекомендации по автоматизации и безопасности удаления

Удаление пустых терминов — операция, которая может повлиять на данные, поэтому важно соблюдать меры предосторожности:

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

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

Выводы и практические советы

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

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

Автоматическое отслеживание изменений остатков товаров в WooCommerce
04.05.2026
Как создать собственный тип записи (Custom Post Type) в WordPress с примерами кода
03.01.2026
Как установить приватный REST API в WordPress
31.01.2026
Как отладить проблемы с авторизацией в WordPress: практическое руководство
02.04.2026
Как использовать куки для авторизации в WordPress
09.02.2026