wpcat.ru wordpress WPCat.ru

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

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

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

Пустые категории — это те категории, к которым не привязаны записи. Они могут появляться после удаления или перемещения записей, либо при неправильной настройке таксономии. Вот почему их стоит удалять:

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

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

Как найти пустые категории в WordPress через админку

Самый простой способ — проверить раздел «Рубрики» в админке WordPress (Посты → Рубрики). Здесь отображается количество записей в каждой категории. Если у категории количество записей равно нулю, значит она пустая.

Однако при большом количестве категорий ручная проверка занимает много времени. Лучше автоматизировать процесс.

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

Вы можете добавить следующую функцию в файл functions.php вашей темы или в отдельный плагин. Эта функция автоматически удалит все пустые категории.

function wpcat_delete_empty_categories() {
    $empty_cats = get_categories(array(
        'hide_empty' => true,
        'fields' => 'ids',
    ));
    $all_cats = get_categories(array(
        'hide_empty' => false,
        'fields' => 'ids',
    ));
    $empty_cats = array_diff($all_cats, $empty_cats);

    foreach($empty_cats as $cat_id) {
        wp_delete_category($cat_id);
    }
}

// Запускаем функцию по крон-задаче или вручную
// wpcat_delete_empty_categories();

Объяснение кода:

  • Сначала мы получаем ID всех категорий с записями (hide_empty => true).
  • Затем получаем ID всех категорий, включая пустые.
  • Находим разницу — это и есть пустые категории.
  • Удаляем каждую пустую категорию через wp_delete_category().

Важно: запускать эту функцию лучше вручную или через крон, чтобы не удалять категории случайно.

Добавление cron-задачи для регулярного удаления

Чтобы функция запускалась регулярно, добавьте в functions.php следующий код:

if ( ! wp_next_scheduled( 'wpcat_cron_delete_empty_categories' ) ) {
    wp_schedule_event( time(), 'daily', 'wpcat_cron_delete_empty_categories' );
}

add_action( 'wpcat_cron_delete_empty_categories', 'wpcat_delete_empty_categories' );

Это позволит автоматически очищать пустые категории раз в сутки.

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

Если вы не хотите работать с кодом, можно использовать плагин Term Management Tools. Он позволяет массово удалять пустые категории и выполнять другие операции с таксономиями.

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

Как избежать появления пустых категорий

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

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

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

Пример функции удаления пустой категории после удаления записи

function wpcat_delete_empty_category_on_post_delete( $post_id ) {
    $categories = wp_get_post_categories( $post_id );
    foreach ( $categories as $cat_id ) {
        $cat = get_category( $cat_id );
        if ( $cat->count <= 1 ) { // Если после удаления записи категория станет пустой
            wp_delete_category( $cat_id );
        }
    }
}
add_action( 'before_delete_post', 'wpcat_delete_empty_category_on_post_delete' );

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

Заключение

Удаление пустых категорий — простой, но важный шаг для поддержания чистоты и эффективности сайта на WordPress. Используйте предложенные методы для автоматизации этого процесса и интегрируйте их в вашу работу. Если хотите расширить функционал — обратите внимание на плагины Clearfy Pro и Term Management Tools.

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙