В процессе управления сайтом на WordPress часто накапливаются пустые категории — такие, которые не содержат ни одной записи. Это создает беспорядок, ухудшает навигацию и может негативно повлиять на SEO сайта. В этой статье мы подробно рассмотрим, как автоматически находить и удалять пустые категории с помощью кастомного кода, а также как сделать этот процесс безопасным и удобным.
Почему важно удалять пустые категории в WordPress
Пустые категории не только загромождают панель управления, но и создают лишние URL, которые могут индексироваться поисковыми системами, что негативно сказаться на ранжировании. Кроме того, на фронтенде темы зачастую отображают категории в меню, виджетах или в хлебных крошках — пустые категории тут выглядят некрасиво и сбивают посетителей.
Регулярная очистка категорий помогает поддерживать структуру сайта в порядке и повышать его производительность, особенно если используется большое количество категорий.
Как определить пустые категории в WordPress
Пустой категорией считается та, у которой нет ни одной опубликованной записи (поста). Для проверки можно использовать функцию WordPress get_categories() с параметром hide_empty. Если установить hide_empty=0, то будут возвращены все категории, а затем можно проверить свойство category_count каждой категории.
Пример получения всех пустых категорий:
$empty_cats = array_filter(get_categories(array('hide_empty' => 0)), function($cat) { return $cat->count == 0; });Удаление пустых категорий с помощью PHP-кода
Для удаления категории в WordPress существует функция wp_delete_category($cat_id). Мы можем написать функцию, которая будет проходить по всем пустым категориям и удалять их.
Ниже пример кода, который можно добавить в файл functions.php вашей темы или в кастомный плагин:
function wpsolution_delete_empty_categories() {
$empty_categories = array_filter(get_categories(array('hide_empty' => 0)), function($cat) {
return $cat->count == 0;
});
foreach ($empty_categories as $cat) {
wp_delete_category($cat->term_id);
}
}Вызовите эту функцию, например, из административной панели через хук или вручную, чтобы очистить пустые категории.
Добавление безопасности и контроля
Удалять категории автоматически стоит с осторожностью. Чтобы не потерять важные данные, рекомендуется делать резервные копии базы данных перед выполнением таких операций.
Также можно добавить проверку текущих прав пользователя, чтобы функция запускалась только администраторами:
function wpsolution_delete_empty_categories_safe() {
if (!current_user_can('manage_categories')) {
return;
}
wpsolution_delete_empty_categories();
}Автоматизация удаления пустых категорий через WP-Cron
Если вы хотите, чтобы очистка происходила регулярно, можно добавить задачу в WP-Cron:
function wpsolution_schedule_empty_cat_cleanup() {
if (!wp_next_scheduled('wpsolution_empty_cat_cleanup_event')) {
wp_schedule_event(time(), 'weekly', 'wpsolution_empty_cat_cleanup_event');
}
}
add_action('wpsolution_empty_cat_cleanup_event', 'wpsolution_delete_empty_categories_safe');
add_action('wp', 'wpsolution_schedule_empty_cat_cleanup');Этот код запустит очистку пустых категорий раз в неделю.
Использование плагинов для управления категориями
Если вы предпочитаете не писать код, существуют плагины, которые помогают искать и удалять пустые категории, например:
- Clearfy Pro — оптимизирует структуру сайта, имеет инструменты для очистки категорий и таксономий.
- Expert Review — позволяет провести аудит качества контента и выявить пустые категории и теги.
Использование таких плагинов удобно, если вы хотите комплексно поддерживать сайт в порядке без ручного вмешательства.
Советы по работе с категориями в WordPress
Для предотвращения появления пустых категорий стоит:
- Планировать структуру категорий заранее, избегая создания лишних.
- Удалять или объединять категории после удаления постов.
- Использовать плагины для контроля таксономий.
- Автоматизировать очистку, если сайт большой и контент часто меняется.
Правильное управление категориями улучшает навигацию и помогает поисковым системам лучше индексировать сайт.