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

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

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

Пустые категории — это категории, в которых нет ни одной записи. Они могут появиться при удалении записей, изменении структуры сайта или при неправильном использовании таксономий. Удаление пустых категорий помогает:

  • Упростить панель управления и структуру категорий;
  • Избавиться от лишних URL, которые могут создавать дубли страниц;
  • Улучшить SEO, так как поисковые системы не индексируют пустые страницы;
  • Сделать меню сайта и навигацию более логичными и понятными для пользователей.

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

Прежде чем удалить пустые категории, полезно получить список таких категорий. Вот пример SQL-запроса, который можно выполнить в phpMyAdmin или другом инструменте для работы с базой данных MySQL:

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

Этот запрос вернёт ID, название и количество записей в каждой категории, где количество равно нулю, то есть пустые категории.

Удаление пустых категорий через SQL-запрос

После того как вы проверили список пустых категорий, можно удалить их напрямую через SQL. Для этого сначала удалим записи из таблицы wp_term_taxonomy, а затем из wp_terms. Важно делать резервную копию базы данных перед выполнением таких операций.

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

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

Удаление пустых категорий с помощью PHP-функции

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

function wptemy_delete_empty_categories() {
    $empty_cats = get_categories(array(
        'hide_empty' => true,
        'fields' => 'ids',
    ));

    // Получаем все категории
    $all_cats = get_categories(array(
        'hide_empty' => false,
        'fields' => 'ids',
    ));

    // Вычисляем пустые категории
    $empty_cats = array_diff($all_cats, $empty_cats);

    foreach ($empty_cats as $cat_id) {
        wp_delete_category($cat_id);
    }
}

Эту функцию можно вызвать в админке через action или добавить в плагин. Она безопасно удаляет категории, используя встроенную функцию wp_delete_category(), которая учитывает все зависимости.

Вызов функции вручную

Чтобы вызвать функцию, добавьте временно следующий код в файл functions.php вашей темы и обновите любую страницу в админке:

add_action('admin_init', 'wptemy_delete_empty_categories');

После выполнения удалите этот код, чтобы функция не запускалась постоянно.

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

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

  • Term Management Tools — позволяет объединять, удалять и переименовывать категории, включая пустые;
  • WP Bulk Delete — мощный плагин для массового удаления постов, категорий и тегов по различным условиям;
  • Clearfy Pro — оптимизационный плагин с функциями очистки и управления таксономиями, который доступен на wpshop.ru.

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

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

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

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

Выводы и рекомендации

Удаление пустых категорий — необходимая задача для поддержания чистоты и оптимизации сайта на WordPress. Используйте SQL-запросы только если уверены в своих действиях и всегда делайте резервные копии. Лучший способ — написать функцию на PHP или использовать проверенные плагины. Также не забывайте регулярно проверять структуру категорий и следить, чтобы они всегда содержали актуальный контент.

Как использовать хуки WordPress для решения конфликтов плагинов
08.12.2025
Как удалить пустую страницу 404 в WordPress
22.03.2026
Как изменить размер изображений в WordPress без потери качества
08.02.2026
Как удалить автосохранения (autosaves) в WordPress: практическое руководство
18.02.2026
Как запретить доступ к XML и RSS в WordPress
25.11.2025