В процессе активного ведения сайта на WordPress нередко накапливаются пустые категории, которые не содержат ни одной записи. Такие категории не только загромождают административную панель, но и могут негативно повлиять на SEO вашего сайта, создавая мертвые ссылки и снижая качество навигации. В этой статье разберёмся, как эффективно найти и удалить пустые категории в WordPress, используя как готовые плагины, так и собственные решения с примерами кода.
Почему важно удалять пустые категории в WordPress
Пустые категории — это категории, в которых нет ни одной опубликованной записи или материала. Зачем их удалять?
- Улучшение навигации: Пустые категории сбивают с толку посетителей и усложняют поиск нужной информации.
- SEO-оптимизация: Поисковые системы могут понизить рейтинг сайта из-за большого количества неиспользуемых страниц и ссылок.
- Чистота административной панели: Упрощается управление контентом, легче ориентироваться в списках категорий.
Удаление пустых категорий — важный этап в поддержании здоровья сайта.
Способы удаления пустых категорий в WordPress
Удаление пустых категорий с помощью плагинов
Самый простой способ — использовать плагины, которые автоматически находят и удаляют пустые категории.
1. Плагин Term Management Tools
- Позволяет массово удалять, объединять и управлять категориями и тегами.
- После установки вам нужно перейти в
Инструменты > Term Managementи выбрать пустые категории для удаления.
2. Плагин WP Bulk Delete
- Поддерживает удаление по разным критериям, включая пустые категории.
- После установки зайдите в
Bulk WP > Delete Terms, выберите «Пустые категории» и выполните удаление.
Но если вы хотите контролировать процесс, можно использовать кастомный код.
Удаление пустых категорий с помощью кода
Для более гибкого и автоматизированного удаления пустых категорий можно создать функцию в файле functions.php вашей темы или в отдельном плагине.
Пример функции для удаления пустых категорий:
function wptalk_delete_empty_categories() {
$empty_categories = get_categories(array(
'hide_empty' => true,
'fields' => 'ids'
));
// Получаем все категории
$all_categories = get_categories(array(
'hide_empty' => false,
'fields' => 'ids'
));
// Находим категории, которые не в списке заполненных
$empty_ids = array_diff($all_categories, $empty_categories);
foreach ($empty_ids as $cat_id) {
wp_delete_category($cat_id);
}
}
// Запускаем функцию при необходимости, например, по хуку admin_init
add_action('admin_init', 'wptalk_delete_empty_categories');Разберём код:
- Сначала получаем список всех категорий с записями (
hide_empty => true), сохраняем их ID. - Далее получаем полный список всех категорий, включая пустые (
hide_empty => false). - Определяем пустые категории как разницу между всеми и заполненными.
- Удаляем каждую пустую категорию функцией
wp_delete_category().
Этот код можно запускать вручную или по событию в админке. Важно: перед удалением лучше сделать резервную копию базы данных.
Как найти пустые категории без удаления
Если вы хотите сначала посмотреть, какие категории пустые, можно вывести их список в админке или на сайте.
function wptalk_get_empty_categories() {
$all_categories = get_categories(array('hide_empty' => false));
$empty_cats = array();
foreach ($all_categories as $cat) {
if ($cat->count === 0) {
$empty_cats[] = $cat;
}
}
return $empty_cats;
}
// Пример вывода в админке
add_action('admin_notices', function() {
$empty_cats = wptalk_get_empty_categories();
if (!empty($empty_cats)) {
echo '<div class="notice notice-warning is-dismissible"><p>Пустые категории: <strong>';
foreach ($empty_cats as $cat) {
echo esc_html($cat->name) . ', ';
}
echo '</strong></p></div>';
}
});Так вы сможете увидеть список пустых категорий и принять решение об их удалении.
Как избежать появления пустых категорий в будущем
Чтобы не накапливать пустые категории, следуйте ряду рекомендаций:
- Удаляйте категории при удалении записей: если вы удаляете все записи из категории, подумайте, нужна ли она дальше.
- Используйте плагины с контролем категорий: например, Clearfy Pro предлагает расширенные настройки управления таксономиями.
- Автоматизируйте очистку: добавьте код для регулярной проверки и удаления пустых категорий с помощью WP-Cron.
Пример добавления задания в планировщик WP-Cron для очистки пустых категорий раз в неделю:
function wptalk_schedule_empty_category_cleanup() {
if (!wp_next_scheduled('wptalk_cron_empty_cat_cleanup')) {
wp_schedule_event(time(), 'weekly', 'wptalk_cron_empty_cat_cleanup');
}
}
add_action('wp', 'wptalk_schedule_empty_category_cleanup');
add_action('wptalk_cron_empty_cat_cleanup', 'wptalk_delete_empty_categories');Заключение
Удаление пустых категорий в WordPress — важный элемент поддержания чистоты и эффективности сайта. Используйте плагины для быстрого решения или внедряйте собственные функции для более тонкого контроля. Регулярная проверка и автоматизация помогут избежать накопления неиспользуемых категорий и улучшить работу вашего сайта.
Для удобства управления категориями и другими аспектами сайта рекомендуем обратить внимание на плагины и темы от WPSHOP, которые помогут сделать ваш WordPress более функциональным и удобным.