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

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

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

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

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

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

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

В административной панели WordPress можно перейти в раздел Записи > Рубрики и посмотреть в колонку «Количество». Если у категории значение 0, значит к ней не привязан ни один пост.

Однако при большом количестве категорий ручной поиск и удаление занимают много времени, поэтому удобнее автоматизировать этот процесс.

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

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

function wpgenerate_delete_unused_categories() {
    $args = array(
        'taxonomy' => 'category',
        'hide_empty' => false,
    );
    $categories = get_terms($args);
    
    foreach ($categories as $category) {
        if ($category->count == 0) {
            wp_delete_term($category->term_id, 'category');
        }
    }
}

Эту функцию можно запускать в админке, например, с помощью пользовательской страницы или через хук. Для теста можно вызвать ее однократно, например, добавив следующий код в файл functions.php вашей темы:

add_action('admin_init', function() {
    if (current_user_can('manage_categories') && isset($_GET['wpgenerate_clean_categories'])) {
        wpgenerate_delete_unused_categories();
        wp_redirect(admin_url('edit-tags.php?taxonomy=category'));
        exit;
    }
});

После этого при переходе по URL https://your-site.ru/wp-admin/edit-tags.php?taxonomy=category&wpgenerate_clean_categories=1 произойдет удаление всех пустых категорий.

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

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

  • Term Delete — позволяет массово удалять термины (категории, метки), включая фильтрацию по количеству связанных записей.
  • Cleanup Terms — плагин для удаления неиспользуемых терминов таксономий.

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

Автоматизация удаления неиспользуемых категорий с WP-Cron

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

Добавим планировщик:

function wpgenerate_schedule_category_cleanup() {
    if (!wp_next_scheduled('wpgenerate_daily_category_cleanup')) {
        wp_schedule_event(time(), 'daily', 'wpgenerate_daily_category_cleanup');
    }
}
add_action('wp', 'wpgenerate_schedule_category_cleanup');

add_action('wpgenerate_daily_category_cleanup', 'wpgenerate_delete_unused_categories');

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

Чтобы убрать задачу, можно использовать:

function wpgenerate_clear_category_cleanup_schedule() {
    $timestamp = wp_next_scheduled('wpgenerate_daily_category_cleanup');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wpgenerate_daily_category_cleanup');
    }
}
// Вызовите эту функцию при деактивации темы или плагина

Резюме и рекомендации

Автоматическое удаление неиспользуемых категорий помогает поддерживать порядок на сайте и улучшать его производительность. Используя предложенный код, вы можете легко интегрировать эту функциональность в свой сайт. Если предпочитаете готовые решения, подойдут плагины из репозитория WordPress.

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

Полезные ссылки и плагины

Как автоматически создавать отзывы с экспертной оценкой в WordPress
22.02.2026
WooCommerce: как автоматически удалять неактивные вариации товаров с помощью кода
05.07.2026
Как создать автоматические резервные копии WordPress
29.11.2025
Как автоматически добавить телефон в фирменный подвал WordPress
17.03.2026
Как автоматизировать создание alt-текста для изображений в WordPress
10.02.2026