wpmoney.ru wordpress WP Money

Как удалить пустые таксономии в WordPress с помощью кода

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

Что такое пустые таксономии и почему их стоит удалять

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

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

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

  • Уменьшить размер базы данных.
  • Улучшить работу запросов к базе.
  • Избавиться от лишних ссылок и страниц на сайте.
  • Облегчить администрирование и навигацию по сайту.

Как найти пустые таксономии в WordPress

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

Пример функции wpmoney_find_empty_taxonomies(), которая выводит список пустых терминов для заданной таксономии:

function wpmoney_find_empty_taxonomies($taxonomy = 'category') {
    $empty_terms = [];
    $terms = get_terms([
        'taxonomy' => $taxonomy,
        'hide_empty' => false,
    ]);
    if (is_wp_error($terms)) {
        return $empty_terms;
    }
    foreach ($terms as $term) {
        if ($term->count === 0) {
            $empty_terms[] = $term;
        }
    }
    return $empty_terms;
}

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

$empty_categories = wpmoney_find_empty_taxonomies('category');
foreach ($empty_categories as $term) {
    echo 'Пустая категория: ' . esc_html($term->name) . ' (ID: ' . $term->term_id . ')<br>';
}

Проверка всех таксономий на сайте

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

$taxonomies = get_taxonomies(['public' => true], 'names');
foreach ($taxonomies as $taxonomy) {
    $empty_terms = wpmoney_find_empty_taxonomies($taxonomy);
    if (!empty($empty_terms)) {
        echo '<h3>Пустые термины таксономии "' . esc_html($taxonomy) . '":</h3>';
        foreach ($empty_terms as $term) {
            echo esc_html($term->name) . ' (ID: ' . $term->term_id . ')<br>';
        }
    }
}

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

Для удаления терминов в WordPress используется функция wp_delete_term(). Мы можем создать функцию wpmoney_delete_empty_taxonomies(), которая удалит все пустые термины для выбранной таксономии:

function wpmoney_delete_empty_taxonomies($taxonomy = 'category') {
    $empty_terms = wpmoney_find_empty_taxonomies($taxonomy);
    foreach ($empty_terms as $term) {
        $result = wp_delete_term($term->term_id, $taxonomy);
        if (is_wp_error($result)) {
            error_log('Ошибка удаления термина ID ' . $term->term_id . ': ' . $result->get_error_message());
        }
    }
}

Для массового удаления пустых терминов по всем публичным таксономиям:

$taxonomies = get_taxonomies(['public' => true], 'names');
foreach ($taxonomies as $taxonomy) {
    wpmoney_delete_empty_taxonomies($taxonomy);
}

Рекомендуется запускать такой код однократно, например, через wp-cli или добавить временно в файл functions.php и затем удалить.

Решение с помощью плагинов

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

Clearfy Pro — мощный плагин для оптимизации WordPress, который среди прочего позволяет очищать базу от мусорных данных, в том числе пустых таксономий. Подробнее на официальной странице плагина.

Еще один вариант — использовать плагин Term Management Tools, который позволяет объединять, удалять и управлять терминами. Через него можно быстро найти и удалить пустые термины.

Советы по предотвращению появления пустых таксономий

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

  • Удаляйте категории и метки только после проверки, что они не используются.
  • При удалении постов автоматически обновляйте связи таксономий.
  • Используйте плагины типа WPCommunity для управления контентом и таксономиями в удобном интерфейсе.
  • Регулярно проверяйте базу данных на наличие «мусорных» терминов и оптимизируйте её.

Выводы и рекомендации

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

×

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

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

пишет статьи

готовит SEO

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

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