В процессе ведения блога или сайта на WordPress со временем может накопиться множество категорий, которые не содержат ни одной записи. Пустые категории не только загромождают административную панель, но и могут негативно влиять на SEO и удобство навигации для пользователей. В этой статье мы подробно разберем, как настроить автоматическое удаление пустых категорий в WordPress, используя как собственный код, так и готовые решения.
Почему важно удалять пустые категории в WordPress
Пустые категории — это категории без связанных записей. Их наличие может привести к ряду проблем:
- Плохое восприятие пользователями: Пустые категории создают ощущение заброшенности и неструктурированности сайта.
- Отрицательное влияние на SEO: Поисковые системы могут считать такие страницы низкокачественными, что снижает общий рейтинг сайта.
- Загромождение админ-панели: Сложнее управлять категориями, если их количество растет без контроля.
Поэтому регулярное удаление пустых категорий — неотъемлемая часть поддержания сайта в порядке.
Как найти пустые категории в WordPress вручную
Самый простой способ — зайти в Консоль > Записи > Рубрики и посмотреть, у каких категорий в колонке «Количество» стоит 0. Такие категории можно удалять вручную, но при большом количестве это неудобно.
Для автоматизации задачи лучше использовать код или плагины.
Автоматическое удаление пустых категорий с помощью кода
Функция для удаления пустых категорий
Ниже приведен пример простой функции, которая находит и удаляет все пустые категории из таксономии category. Эту функцию можно запустить один раз или привязать к событию, например, к крону.
function wpfaq_delete_empty_categories() {
$empty_cats = get_terms(array(
'taxonomy' => 'category',
'hide_empty' => true,
'fields' => 'ids'
));
$all_cats = get_terms(array(
'taxonomy' => 'category',
'hide_empty' => false,
'fields' => 'ids'
));
$empty_cat_ids = array_diff($all_cats, $empty_cats);
foreach ($empty_cat_ids as $cat_id) {
wp_delete_term($cat_id, 'category');
}
}Объяснение кода:
get_termsсhide_empty => trueвозвращает категории с записями.- С вызовом
hide_empty => false— все категории. - Разница — это пустые категории.
- Функция
wp_delete_termудаляет указанные категории.
Автоматический запуск через WP-Cron
Чтобы не запускать функцию вручную, можно добавить задачу в планировщик WordPress WP-Cron. Например, раз в сутки:
function wpfaq_schedule_delete_empty_categories() {
if (!wp_next_scheduled('wpfaq_daily_empty_cat_cleanup')) {
wp_schedule_event(time(), 'daily', 'wpfaq_daily_empty_cat_cleanup');
}
}
add_action('wp', 'wpfaq_schedule_delete_empty_categories');
add_action('wpfaq_daily_empty_cat_cleanup', 'wpfaq_delete_empty_categories');Этот код регистрирует ежедневное событие, вызывающее функцию удаления пустых категорий.
Плагины для управления и очистки категорий
Если вы предпочитаете не работать с кодом, обратите внимание на следующие плагины, которые помогут управлять категориями:
- Term Management Tools — позволяет массово удалять, переносить и сливать категории и другие таксономии.
- Bulk Delete — позволяет удалять термины, включая категории, по разным критериям, в том числе пустые.
Оба плагина доступны в репозитории WordPress и просты в использовании.
Как удалить пустые категории с помощью Bulk Delete
После установки и активации плагина Bulk Delete:
- Перейдите в Bulk WP > Bulk Delete в админ-панели.
- Выберите «Categories» в разделе «Delete Terms».
- Отметьте опцию «Delete empty categories».
- Нажмите «Bulk Delete Now» для удаления пустых категорий.
Плагин также поддерживает планирование удалений по расписанию, что удобно для автоматизации.
Особенности при удалении категорий и что важно учесть
При удалении категорий важно помнить:
- Записи, относящиеся к удаленной категории, могут перейти в категорию по умолчанию, если таковая настроена.
- Если на сайте используются особые таксономии или кастомные категории, убедитесь, что функция или плагин корректно работают с ними.
- Перед массовым удалением категорий рекомендуется сделать резервную копию базы данных.
Заключение и рекомендации
Удаление пустых категорий — эффективный способ поддерживать порядок и улучшать SEO вашего сайта на WordPress. Для автоматизации задачи можно использовать приведенный код с WP-Cron или специализированные плагины, например, Bulk Delete.
Если вы хотите расширить функциональность и настроить более гибкое управление категориями, обратите внимание на плагины из WPShop.ru, где представлены проверенные инструменты для оптимизации и управления WordPress.