wplinks.ru wordpress WPLinks.ru

Как удалить пустые категории в WordPress: практическое руководство

Пустые категории в WordPress — это категории, в которых нет ни одной записи. Со временем на сайте может накопиться множество таких категорий, которые не только мешают навигации, но и влияют на SEO, создавая лишние страницы без контента. В этой статье мы подробно разберём, как удалить пустые категории в WordPress как вручную через административную панель, так и программно с помощью кода и плагинов.

Почему важно удалять пустые категории в WordPress

Пустые категории негативно влияют на юзабилити сайта, так как пользователи попадают на страницы без полезного контента. Кроме того, поисковые системы могут расценивать такие страницы как низкокачественные, что скажется на ранжировании. Удаление пустых категорий помогает поддерживать чистую, логичную структуру сайта и улучшает SEO.

Также, если в будущем вы будете использовать категории для фильтрации или в меню, наличие пустых категорий создаст путаницу и затруднит навигацию по сайту.

Удаление пустых категорий через административную панель WordPress

Самый простой способ — вручную удалить пустые категории через раздел «Рубрики» в админке:

  1. Перейдите в «Записи» → «Рубрики».
  2. Отсортируйте категории по количеству записей, чтобы увидеть категории с нулём записей.
  3. Выделите пустые категории и нажмите «Удалить».

Этот способ подходит для сайтов с небольшим количеством категорий, но если их десятки или сотни, то ручное удаление становится неудобным.

Автоматическое удаление пустых категорий с помощью плагинов

Для сайтов с большим количеством категорий лучше использовать готовые плагины. Примеры таких плагинов:

  • Term Management Tools — расширяет возможности управления таксономиями и позволяет искать и удалять пустые категории.
  • WP Bulk Delete — позволяет массово удалять записи и таксономии, в том числе пустые категории по заданным условиям.

В настройках плагина WP Bulk Delete можно задать фильтр «Пустые категории» и выполнить удаление несколькими кликами.

Программное удаление пустых категорий через код

Если хотите полностью контролировать процесс и автоматизировать удаление, можно написать собственный PHP-скрипт, который удалит все пустые категории. Вот пример функции wplinks_delete_empty_categories(), которую можно добавить в файл functions.php вашей темы или в отдельный плагин:

function wplinks_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');
        }
    }
}

Эта функция получает все категории, включая пустые, и удаляет те, у которых количество записей count равно 0.

Чтобы выполнить удаление, вызовите функцию один раз (например, через админ-панель или временно добавив вызов в functions.php):

add_action('admin_init', 'wplinks_delete_empty_categories');

После того как удаление выполнено, эту строку нужно убрать, чтобы функция не выполнялась при каждом заходе в админку.

Как добавить уведомление об удалении категорий

Для удобства можно добавить вывод сообщения в админке после удаления категорий. Пример с использованием admin_notices:

function wplinks_delete_empty_categories_with_notice() {
    if (!current_user_can('manage_categories')) {
        return;
    }

    $args = array('taxonomy' => 'category', 'hide_empty' => false);
    $categories = get_terms($args);
    $deleted_count = 0;

    foreach ($categories as $category) {
        if ($category->count == 0) {
            if (wp_delete_term($category->term_id, 'category')) {
                $deleted_count++;
            }
        }
    }

    if ($deleted_count > 0) {
        add_action('admin_notices', function() use ($deleted_count) {
            echo '<div class="notice notice-success is-dismissible">';
            echo '<p>Удалено пустых категорий: ' . esc_html($deleted_count) . '</p>';
            echo '</div>';
        });
    }
}
add_action('admin_init', 'wplinks_delete_empty_categories_with_notice');

Этот код удаляет пустые категории и после этого показывает уведомление с количеством удалённых категорий.

Удаление пустых категорий с сохранением подкатегорий

Иногда подкатегории могут быть пустыми, при этом вы хотите удалить только пустые верхнеуровневые категории, не затрагивая вложенные. Для этого нужно проверить уровень вложенности и состояние подкатегорий:

function wplinks_delete_empty_parent_categories() {
    $args = array('taxonomy' => 'category', 'hide_empty' => false);
    $categories = get_terms($args);

    foreach ($categories as $category) {
        if ($category->count == 0 && $category->parent == 0) {
            // Проверяем, есть ли у категории подкатегории с записями
            $child_args = array(
                'taxonomy' => 'category',
                'parent' => $category->term_id,
                'hide_empty' => false
            );
            $children = get_terms($child_args);

            $has_filled_child = false;
            foreach ($children as $child) {
                if ($child->count > 0) {
                    $has_filled_child = true;
                    break;
                }
            }

            if (!$has_filled_child) {
                wp_delete_term($category->term_id, 'category');
            }
        }
    }
}

Такой подход позволяет аккуратно очистить только пустые родительские категории, не удаляя структурно важные подкатегории.

Рекомендации для поддержки чистоты категорий

Чтобы не допускать появления пустых категорий, следуйте простым правилам:

  • При создании записи всегда назначайте её в существующую категорию.
  • Перед удалением записей проверяйте, не останется ли категория пустой.
  • Регулярно проверяйте структуру и удаляйте пустые категории с помощью плагинов или кода.
  • Используйте пользовательский код для автоматизации очистки, интегрируя его в свои административные задачи.

Заключение по удалению пустых категорий в WordPress

Удаление пустых категорий — важная задача для поддержания чистоты и удобства работы сайта на WordPress. В зависимости от масштаба проекта и ваших навыков вы можете выбрать ручное удаление, использование плагинов или написать собственный скрипт для автоматизации. В любом случае, регулярная проверка и чистка категорий поможет улучшить структуру сайта и повысить качество пользовательского опыта.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше