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

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

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

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

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

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

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

Для поиска пустых категорий мы можем использовать функцию get_categories() с параметром 'hide_empty' => true или наоборот, для получения пустых категорий — 'hide_empty' => false с последующей фильтрацией.

Пример кода для поиска категорий с количеством записей 0:

function wpmanual_get_empty_categories() {
    $all_cats = get_categories(array(
        'hide_empty' => false
    ));

    $empty_cats = array();
    foreach ($all_cats as $cat) {
        if ($cat->count === 0) {
            $empty_cats[] = $cat;
        }
    }
    return $empty_cats;
}

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

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

После того, как мы получили список пустых категорий, можно удалить их с помощью функции wp_delete_category(). Эта функция принимает ID категории и удаляет ее из базы данных.

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

function wpmanual_delete_empty_categories() {
    if (!current_user_can('manage_categories')) {
        return; // Проверка прав пользователя
    }

    $empty_cats = wpmanual_get_empty_categories();

    foreach ($empty_cats as $cat) {
        wp_delete_category($cat->term_id);
    }
}

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

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

Создадим простой плагин, который добавит в меню администратора страницу с кнопкой для удаления пустых категорий.

/**
 * Plugin Name: WPManual Удаление пустых категорий
 * Description: Позволяет удалить все пустые категории одним кликом
 * Version: 1.0
 * Author: WPManual
 */

// Добавляем пункт меню
add_action('admin_menu', function() {
    add_submenu_page(
        'tools.php',
        'Удалить пустые категории',
        'Удалить пустые категории',
        'manage_categories',
        'wpmanual-delete-empty-cats',
        'wpmanual_render_delete_empty_cats_page'
    );
});

function wpmanual_render_delete_empty_cats_page() {
    if (isset($_POST['wpmanual_delete_empty_cats_nonce']) && wp_verify_nonce($_POST['wpmanual_delete_empty_cats_nonce'], 'wpmanual_delete_empty_cats')) {
        wpmanual_delete_empty_categories();
        echo '<div class="updated notice">Пустые категории успешно удалены.</div>';
    }
    echo '<h1>Удалить пустые категории</h1>';
    echo '<form method="post">';
    wp_nonce_field('wpmanual_delete_empty_cats', 'wpmanual_delete_empty_cats_nonce');
    echo '<p><input type="submit" class="button button-primary" value="Удалить пустые категории" /></p>';
    echo '</form>';
}

Этот плагин добавляет в раздел «Инструменты» админки новую страницу, где можно нажатием кнопки удалить все категории без записей.

Альтернативные способы и плагины для очистки категорий

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

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

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

Советы по предотвращению появления пустых категорий

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

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

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

WooCommerce: как добавить собственные поля в форму оформления заказа
28.05.2026
Как удалить заблокированных пользователей WordPress с помощью кода
30.03.2026
Как проверить и использовать активные CRON задачи в WordPress
05.02.2026
WooCommerce: запрет создания новых заказов по предоплаченным товарам
30.04.2026
WooCommerce не работает отправка писем после обновления: диагностика и решение
26.04.2026