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

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

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

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

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

Регулярная очистка категорий помогает поддерживать порядок и улучшать SEO-показатели.

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

Категория считается пустой, если в ней нет записей, то есть количество связанных постов равно нулю. Для проверки можно использовать SQL-запрос, который покажет все категории с нулевым числом записей:

SELECT t.term_id, t.name, tt.count
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'category' AND tt.count = 0;

Здесь wp_terms — таблица с терминами (названиями категорий), wp_term_taxonomy — таблица с таксономиями и связями, а count — поле, показывающее количество привязанных записей.

Удаление пустых категорий через SQL-запрос

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

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

DELETE t, tt
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'category' AND tt.count = 0;

Этот запрос удалит одновременно записи из обеих таблиц.

Внимание! Перед выполнением любых операций с базой данных обязательно сделайте резервную копию.

Автоматизация удаления пустых категорий с помощью PHP-функции в WordPress

Если вы хотите регулярно очищать пустые категории, лучше сделать это программно, используя функцию на PHP. Ниже приведён пример функции wpbook_delete_empty_categories(), которую можно добавить в файл functions.php вашей темы или в отдельный плагин.

function wpbook_delete_empty_categories() {
    global $wpdb;
    $query = "SELECT t.term_id
              FROM {$wpdb->terms} AS t
              INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id
              WHERE tt.taxonomy = 'category' AND tt.count = 0";
    $empty_cats = $wpdb->get_col($query);

    if (!empty($empty_cats)) {
        foreach ($empty_cats as $term_id) {
            wp_delete_term($term_id, 'category');
        }
    }
}

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

Как запустить функцию вручную или по расписанию

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

add_action('admin_init', 'wpbook_delete_empty_categories');

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

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

add_action('wpbook_cron_delete_empty_categories', 'wpbook_delete_empty_categories');

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

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

Если вы предпочитаете визуальные инструменты, можно использовать плагины, которые помогут найти и удалить пустые категории и другие ненужные таксономии:

  • Clearfy Pro — плагин оптимизации, который включает функции очистки базы данных, в том числе удаление пустых категорий. Подробнее на wpshop.ru.
  • WP Sweep — бесплатный плагин для очистки базы данных, включая удаление пустых терминов таксономий.

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

Рекомендации по безопасности и производительности

При работе с базой данных и удалением записей важно соблюдать следующие меры предосторожности:

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

Выводы

Удаление пустых категорий — важная задача для поддержания чистоты и оптимизации WordPress-сайта. Используя SQL-запросы и встроенные функции WordPress, можно быстро найти и безопасно удалить такие категории. Для регулярной очистки удобно автоматизировать процесс с помощью WP-Cron и PHP-функций. При необходимости используйте проверенные плагины, такие как Clearfy Pro, которые добавляют удобные инструменты для управления базой данных.

Если вы хотите попробовать Clearfy Pro для оптимизации своего сайта, переходите по ссылке: https://wpshop.ru/plugins/clearfy-pro/

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

⭐⭐⭐⭐⭐
Как создать автоматический импорт пользователей в WordPress с помощью CSV
04.02.2026
Как создать автоматический импорт данных из Excel в WordPress
05.03.2026
Как создать автоматический контроль версий файлов темы WordPress
13.04.2026
Как автоматически удалять неактивных пользователей WordPress
16.04.2026
Как создать автоматическое удаление спама в комментариях WordPress
01.02.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее