Пустые категории в WordPress — это те категории, в которых нет ни одной записи. Они могут возникать в процессе работы с сайтом, когда записи удаляются или переносятся, а категории остаются неиспользуемыми. Такие категории создают беспорядок в админке и могут мешать навигации пользователей.
Почему важно удалять пустые категории
Пустые категории занимают место в списках категорий, усложняют структуру сайта и могут создавать путаницу для администраторов и посетителей. Кроме того, если тема или плагины автоматически выводят список категорий (например, в боковой панели), пустые категории будут отображаться как неактуальные элементы навигации.
Удаление пустых категорий помогает поддерживать чистоту контента и улучшает пользовательский опыт. Особенно это актуально для сайтов с большим количеством категорий и динамически обновляемым контентом.
Способы удаления пустых категорий в WordPress
Удаление через административную панель
Самый простой способ — зайти в раздел Записи > Рубрики, отсортировать категории по количеству записей и вручную удалить те, у которых количество равно нулю. Но этот способ неудобен при большом количестве категорий.
Автоматическое удаление пустых категорий с помощью кода
Для более эффективного решения можно использовать PHP-функцию, которая будет автоматически удалять пустые категории. Ее можно запускать разово через файл темы или создать плагин для регулярного выполнения.
function wpfind_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');
}
}
}
// Запуск функции один раз
wpfind_delete_empty_categories();Эта функция получает все категории, включая пустые (параметр hide_empty => false), и удаляет те, у которых счетчик записей равен нулю.
Автоматизация удаления пустых категорий с помощью CRON
Если вы хотите, чтобы очистка пустых категорий происходила автоматически, можно зарегистрировать событие CRON:
function wpfind_schedule_empty_category_cleanup() {
if (!wp_next_scheduled('wpfind_empty_category_cleanup_hook')) {
wp_schedule_event(time(), 'daily', 'wpfind_empty_category_cleanup_hook');
}
}
add_action('wp', 'wpfind_schedule_empty_category_cleanup');
add_action('wpfind_empty_category_cleanup_hook', 'wpfind_delete_empty_categories');Этот код создаст задачу, которая будет запускать функцию очистки ежедневно. Убедитесь, что WP-Cron работает корректно на вашем сайте.
Использование плагинов для удаления пустых категорий
Если вы предпочитаете готовые решения, обратите внимание на плагины, которые упрощают работу с категориями.
- Term Management Tools — позволяет быстро удалять пустые таксономии.
- Bulk Delete — мощный плагин для массового удаления записей и таксономий по различным критериям, включая пустые категории.
Оба плагина можно найти в официальном репозитории WordPress и установить через админку.
Как избежать появления пустых категорий
Чтобы минимизировать появление пустых категорий, рекомендуем:
- Перед удалением записи переназначать ее в другую категорию.
- Использовать функции для автоматического удаления пустых категорий (например, описанную выше).
- Регулярно проверять структуру категорий и чистить их.
Интеграция с WPShop и плагинами
Для сайтов на базе WPShop можно использовать плагин Clearfy Pro, который содержит инструменты для оптимизации и очистки базы, включая работу с таксономиями. Это позволит автоматизировать процесс и повысить производительность сайта.
Выводы и рекомендации
Удаление пустых категорий — простая, но важная задача для поддержания чистоты и удобства управления сайтом. Автоматизация с помощью кастомных функций и CRON-задач значительно облегчает работу, особенно для крупных проектов. Использование готовых плагинов, таких как Clearfy Pro или Bulk Delete, позволит сэкономить время и избежать ошибок.
Используйте приведенные кодовые примеры и рекомендации, чтобы поддерживать структуру категорий в порядке и улучшать качество вашего WordPress сайта.