В процессе работы с WordPress иногда накапливаются пустые категории — разделы, в которых нет ни одной записи. Такие категории не только создают путаницу в админке, но и могут негативно влиять на SEO и пользовательский опыт. В этой статье мы подробно разберем, как безопасно и эффективно удалить пустые категории в WordPress, используя как стандартные инструменты, так и кастомные решения с примерами кода.
Почему важно удалять пустые категории в WordPress
Пустые категории в WordPress — это категории, в которых не назначено ни одной записи. Они могут появляться по разным причинам: удаление записей, неправильное распределение контента или ошибки при импорте. Оставлять такие категории не рекомендуется, потому что:
- Они создают избыточность и загромождают структуру сайта.
- Могут ухудшать SEO, так как поисковые системы индексируют пустые страницы категории.
- Пользователям неудобно, если при переходе на категорию они не находят контент.
Поэтому регулярное удаление пустых категорий поможет поддерживать чистоту и эффективность сайта.
Как проверить наличие пустых категорий в WordPress
Для начала нужно получить список категорий с нулевым количеством записей. Это можно сделать через админ-панель или программно.
Проверка через админ-панель
В разделе Записи > Рубрики вы увидите список всех категорий и количество записей в каждой. Можно вручную удалить те, где значение «Записи» равно 0. Но если категорий много, этот способ неудобен.
Программный способ — получить пустые категории
Для автоматизации можно использовать WP_Query или функцию get_terms с параметрами для фильтрации пустых категорий. Вот пример функции clearfy_get_empty_categories():
function clearfy_get_empty_categories() {
$args = array(
'taxonomy' => 'category',
'hide_empty' => true,
'fields' => 'ids'
);
$non_empty = get_terms($args);
$all_args = array(
'taxonomy' => 'category',
'hide_empty' => false,
'fields' => 'ids'
);
$all = get_terms($all_args);
$empty = array_diff($all, $non_empty);
return $empty;
}Эта функция возвращает массив ID категорий, в которых нет записей.
Удаление пустых категорий через админку и программно
Удаление вручную в админ-панели
Для небольшого количества пустых категорий:
- Перейдите в Записи > Рубрики.
- Отфильтруйте категории по количеству записей, чтобы найти пустые.
- Наведите курсор на категорию и нажмите «Удалить».
Этот способ безопасен и не требует навыков программирования, но может быть долгим при большом количестве.
Удаление пустых категорий программно
Для автоматизации удаления пустых категорий можно использовать следующий код, который безопасно удалит только категории без записей:
function clearfy_delete_empty_categories() {
$empty_cats = clearfy_get_empty_categories();
if (!empty($empty_cats)) {
foreach ($empty_cats as $cat_id) {
wp_delete_term($cat_id, 'category');
}
}
}
// Запускаем удаление, например, при активации плагина или через WP-CLI
clearfy_delete_empty_categories();Обратите внимание, что функция wp_delete_term() безопасно удалит категорию, если она действительно пустая и не используется как родительская для других категорий.
Решение возможных проблем при удалении категорий
Иногда при удалении категории WordPress может выдать ошибку, если категория используется как родительская или связана с другими таксономиями. Чтобы избежать ошибок, полезно заранее проверить, нет ли у категории дочерних элементов:
function clearfy_can_delete_category($cat_id) {
$children = get_terms(array(
'taxonomy' => 'category',
'parent' => $cat_id,
'hide_empty' => false,
'fields' => 'ids'
));
return empty($children);
}Перед удалением категории можно вызвать эту функцию и пропускать удаление, если у категории есть дочерние элементы.
Плагины для управления категориями и таксономиями
Для тех, кто не хочет использовать код, существуют готовые плагины, которые помогут управлять категориями и удалять пустые:
- Remove Empty Categories — автоматически удаляет пустые категории по расписанию.
- Term Management Tools — расширенные инструменты для управления таксономиями, включая поиск и удаление пустых терминов.
- Clearfy Pro — многофункциональный плагин для оптимизации и очистки WordPress, включая работу с таксономиями.
Использование плагина может быть удобнее для несведущих пользователей, но важно выбирать проверенные решения и делать резервные копии сайта.
Рекомендации по безопасности перед удалением категорий
Перед тем как удалять категории, особенно программно, соблюдайте простые правила безопасности:
- Сделайте полную резервную копию базы данных и файлов сайта.
- Тестируйте код и действия на локальной копии сайта или тестовом окружении.
- Проверяйте, что категории действительно пустые и не используются в других местах сайта.
- Если используете автоматизацию, добавьте логирование действий для контроля.
Так вы избежите случайной потери данных и проблем с работой сайта.
Выводы и лучшие практики
Удаление пустых категорий в WordPress — простая, но важная процедура для поддержания чистоты структуры сайта и оптимизации SEO. Используйте как встроенные инструменты админки, так и кастомный код для автоматизации. Для удобства и безопасности применяйте проверенные плагины, например, Clearfy Pro, который включает функции по оптимизации таксономий и не только.