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

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

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

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

Автоматизация позволяет:

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

Теперь рассмотрим, как реализовать эти задачи через код.

Автоматическое создание категорий при публикации записи — пример кода

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

Для этого используем хук save_post и функцию wpcoder_auto_create_category:

function wpcoder_auto_create_category($post_id) {
    // Проверяем, что это не автосохранение
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Проверяем права пользователя
    if (!current_user_can('edit_post', $post_id)) return;

    // Получаем значение пользовательского поля 'thematic'
    $thematic = get_post_meta($post_id, 'thematic', true);
    if (empty($thematic)) return;

    // Проверяем, есть ли категория с таким именем
    $term = get_term_by('name', $thematic, 'category');

    if (!$term) {
        // Создаём новую категорию
        $new_term = wp_insert_term($thematic, 'category');
        if (is_wp_error($new_term)) return;
        $term_id = $new_term['term_id'];
    } else {
        $term_id = $term->term_id;
    }

    // Присваиваем категорию записи
    wp_set_post_terms($post_id, array($term_id), 'category', true);
}
add_action('save_post', 'wpcoder_auto_create_category');

Этот код автоматически создаёт категорию с названием из мета-поля thematic, если её нет, и присваивает её записи при сохранении.

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

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

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

Пример функции wpcoder_delete_empty_categories:

function wpcoder_delete_empty_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');
        }
    }
}

// Регистрируем событие крон, если ещё не зарегистрировано
if (!wp_next_scheduled('wpcoder_cron_delete_empty_categories')) {
    wp_schedule_event(time(), 'daily', 'wpcoder_cron_delete_empty_categories');
}
add_action('wpcoder_cron_delete_empty_categories', 'wpcoder_delete_empty_categories');

Этот код ежедневно запускает проверку и очищает категории без записей. Это удобно для поддержания чистоты в базе.

Использование плагина Clearfy Pro для расширенной работы с категориями

Если вы не хотите писать код самостоятельно, можно использовать плагин Clearfy Pro. Он помогает оптимизировать работу с категориями, в том числе автоматизировать создание и удаление, а также управлять SEO-настройками.

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

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

Особенности и рекомендации по автоматизации категорий

При автоматизации категорий стоит учитывать несколько важных моментов:

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

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

Как использовать хуки WordPress для изменения поведения корзины WooCommerce
24.04.2026
Автоматический импорт данных из Excel в WordPress: практическое руководство
25.03.2026
Как использовать WP-CLI для автоматизации WordPress
04.12.2025
Как удалить старые мета-поля в WordPress при удалении записи
21.02.2026
WordPress отладка проблем с кэшем и кэш-плагинами: практические решения
08.12.2025