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

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

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

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

Удаление вручную при большом количестве категорий — трудоемкий процесс. Автоматизация решения поможет сэкономить время и избежать ошибок.

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

Пустая категория — это категория, у которой нет записей. В WordPress для получения количества записей в категории можно использовать параметр category_count таксономии.

Для примера, можно получить все категории с помощью функции get_categories() и проверить поле count у каждой категории:

$categories = get_categories( array( 'hide_empty' => false ) );

foreach ( $categories as $category ) {
    if ( $category->count == 0 ) {
        // Это пустая категория
    }
}

Автоматическое удаление пустых категорий с помощью кода

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

function wpbest_delete_empty_categories() {
    $categories = get_categories( array( 'hide_empty' => false ) );

    foreach ( $categories as $category ) {
        if ( $category->count == 0 ) {
            $deleted = wp_delete_term( $category->term_id, 'category' );
            if ( is_wp_error( $deleted ) ) {
                error_log( 'Ошибка удаления категории ID ' . $category->term_id . ': ' . $deleted->get_error_message() );
            } else {
                error_log( 'Категория ID ' . $category->term_id . ' успешно удалена.' );
            }
        }
    }
}

Чтобы запустить функцию, можно добавить вызов в файл functions.php вашей темы или создать отдельный плагин. Рекомендуется запускать функцию один раз, чтобы избежать постоянного удаления.

Пример вызова с условием

Например, можно добавить вызов функции при определенном GET-параметре в URL, чтобы запускать скрипт вручную из браузера:

add_action( 'admin_init', 'wpbest_delete_empty_categories_trigger' );
function wpbest_delete_empty_categories_trigger() {
    if ( isset( $_GET['delete_empty_cats'] ) && current_user_can( 'manage_categories' ) ) {
        wpbest_delete_empty_categories();
        wp_die( 'Пустые категории удалены.' );
    }
}

После этого достаточно перейти по ссылке https://yoursite.ru/wp-admin/?delete_empty_cats=1 под учетной записью администратора, чтобы очистить пустые категории.

Резервное копирование и меры предосторожности

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

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

Альтернативные решения — плагины для управления категориями

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

  • Term Management Tools — расширяет управление таксономиями.
  • Bulk Delete — позволяет массово удалять записи и категории по условиям.

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

Заключение

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

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

Как использовать шорткоды для динамического контента в WordPress
15.02.2026
Как настроить очистку базы данных WordPress от старых данных
19.11.2025
Оптимизация кэширования в WordPress для ускорения сайта
02.12.2025
Как добавить динамические таблицы в WordPress без плагинов
25.02.2026
Как использовать WooCommerce hooks для настройки магазина на WordPress
11.03.2026