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

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

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

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

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

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

Как проверить наличие пустых категорий в WordPress

Для начала нужно получить список категорий с нулевым количеством записей. Это можно сделать через админ-панель или программно.

Проверка через админ-панель

В разделе Записи > Рубрики вы увидите список всех категорий и количество записей в каждой. Можно вручную удалить те, где значение «Записи» равно 0. Но если категорий много, этот способ неудобен.

Программный способ — получить пустые категории

Для автоматизации можно использовать WP_Query или функцию get_terms с параметрами для фильтрации пустых категорий. Вот пример функции clearfy_get_empty_categories():

function clearfy_get_empty_categories() {
    $args = array(
        'taxonomy' => 'category',
        'hide_empty' => true,
        'fields' => 'ids'
    );
    $non_empty = get_terms($args);

    $all_args = array(
        'taxonomy' => 'category',
        'hide_empty' => false,
        'fields' => 'ids'
    );
    $all = get_terms($all_args);

    $empty = array_diff($all, $non_empty);
    return $empty;
}

Эта функция возвращает массив ID категорий, в которых нет записей.

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

Удаление вручную в админ-панели

Для небольшого количества пустых категорий:

  1. Перейдите в Записи > Рубрики.
  2. Отфильтруйте категории по количеству записей, чтобы найти пустые.
  3. Наведите курсор на категорию и нажмите «Удалить».

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

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

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

function clearfy_delete_empty_categories() {
    $empty_cats = clearfy_get_empty_categories();
    if (!empty($empty_cats)) {
        foreach ($empty_cats as $cat_id) {
            wp_delete_term($cat_id, 'category');
        }
    }
}

// Запускаем удаление, например, при активации плагина или через WP-CLI
clearfy_delete_empty_categories();

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

Решение возможных проблем при удалении категорий

Иногда при удалении категории WordPress может выдать ошибку, если категория используется как родительская или связана с другими таксономиями. Чтобы избежать ошибок, полезно заранее проверить, нет ли у категории дочерних элементов:

function clearfy_can_delete_category($cat_id) {
    $children = get_terms(array(
        'taxonomy' => 'category',
        'parent' => $cat_id,
        'hide_empty' => false,
        'fields' => 'ids'
    ));
    return empty($children);
}

Перед удалением категории можно вызвать эту функцию и пропускать удаление, если у категории есть дочерние элементы.

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

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

  • Remove Empty Categories — автоматически удаляет пустые категории по расписанию.
  • Term Management Tools — расширенные инструменты для управления таксономиями, включая поиск и удаление пустых терминов.
  • Clearfy Pro — многофункциональный плагин для оптимизации и очистки WordPress, включая работу с таксономиями.

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

Рекомендации по безопасности перед удалением категорий

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

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

Так вы избежите случайной потери данных и проблем с работой сайта.

Выводы и лучшие практики

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

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

⭐⭐⭐⭐⭐
Как удалить CSS и JS по условию в WordPress для ускорения сайта
10.01.2026
Как удалить автоматические заказы в WooCommerce без риска
28.05.2026
Как создать собственный плагин для оптимизации WordPress: практическое руководство
08.11.2025
Как отключить автовоспроизведение видео в WordPress: практические методы и примеры
28.02.2026
Как удалить скрипты и стили в WordPress для увеличения скорости сайта
04.11.2025
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙