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

Пустые категории в WordPress — это категории, в которых нет опубликованных записей. Они не влияют на SEO напрямую, но могут создавать беспорядок в админке и в списках категорий на сайте. В этой статье рассмотрим, как автоматически находить и удалять такие категории с помощью кода. Это поможет поддерживать чистоту структуры таксономий и облегчить администрирование.

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

Пустые категории:

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

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

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

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

function wpboot_get_empty_categories() {
    $categories = get_categories(array(
        'hide_empty' => false
    ));
    $empty_cats = array();
    foreach ($categories as $category) {
        if ($category->count == 0) {
            $empty_cats[] = $category;
        }
    }
    return $empty_cats;
}

Этот код возвращает массив объектов категорий, у которых нет записей.

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

Чтобы удалить пустые категории, достаточно получить их список и для каждой вызвать функцию wp_delete_category(). Вот пример функции, которая делает это с дополнительной проверкой:

function wpboot_delete_empty_categories() {
    $empty_cats = wpboot_get_empty_categories();
    foreach ($empty_cats as $cat) {
        $deleted = wp_delete_category($cat->term_id);
        if ($deleted) {
            error_log('Категория удалена: ' . $cat->name);
        } else {
            error_log('Не удалось удалить категорию: ' . $cat->name);
        }
    }
}

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

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

Для удобства приведём пример простого плагина, который добавляет в админку кнопку для удаления пустых категорий.

<?php
/**
 * Plugin Name: WPBoot Удаление пустых категорий
 * Description: Добавляет кнопку для удаления пустых категорий из админки.
 * Version: 1.0
 * Author: WPBoot
 */

add_action('admin_menu', 'wpboot_empty_cats_menu');

function wpboot_empty_cats_menu() {
    add_submenu_page(
        'edit.php',
        'Удалить пустые категории',
        'Удалить пустые категории',
        'manage_options',
        'wpboot-delete-empty-cats',
        'wpboot_empty_cats_page'
    );
}

function wpboot_empty_cats_page() {
    if (isset($_POST['wpboot_delete_empty_cats'])) {
        wpboot_delete_empty_categories();
        echo '<div class="updated notice">Пустые категории удалены.</div>';
    }
    ?>
    <h1>Удалить пустые категории</h1>
    <form method="post">
        <input type="hidden" name="wpboot_delete_empty_cats" value="1" />
        <input type="submit" class="button button-primary" value="Удалить пустые категории" />
    </form>
    <?php
}

function wpboot_get_empty_categories() {
    $categories = get_categories(array('hide_empty' => false));
    $empty_cats = array();
    foreach ($categories as $category) {
        if ($category->count == 0) {
            $empty_cats[] = $category;
        }
    }
    return $empty_cats;
}

function wpboot_delete_empty_categories() {
    $empty_cats = wpboot_get_empty_categories();
    foreach ($empty_cats as $cat) {
        wp_delete_category($cat->term_id);
    }
}

После активации этого плагина в меню «Записи» появится пункт «Удалить пустые категории», где вы сможете одним кликом очистить сайт от ненужных таксономий.

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

Если вам нужно регулярно чистить сайт, можно добавить автоматический запуск функции удаления через WP-Cron:

add_action('wpboot_delete_empty_categories_daily', 'wpboot_delete_empty_categories');

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

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

Советы по работе с категориями и таксономиями в WordPress

Удаление пустых категорий — часть общей работы по управлению таксономиями. Вот несколько рекомендаций:

  • Перед удалением категорий сделайте резервную копию базы данных.
  • Если у вас на сайте используются пользовательские таксономии, рассмотрите возможность расширения функций для работы с ними.
  • Следите за тем, чтобы важные категории не были случайно удалены.
  • Используйте плагины, например Clearfy Pro, которые помогают управлять таксономиями и оптимизируют структуру сайта. Подробнее на https://wpshop.ru/plugins/clearfy-pro/.

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

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

⭐⭐⭐⭐⭐
Как использовать REST API WordPress для создания простых приложений
02.10.2026
Как удалить все посты из категории WordPress быстро и безопасно
03.10.2026
Как добавить переадресацию в WordPress без плагинов
02.10.2026
Как автоматизировать обновление тем и плагинов в WordPress без рисков
02.10.2026
Как отключить Emoji в WordPress для ускорения сайта
02.10.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее