Как удалить или изменить slug таксономии в WordPress без редиректа

Slug таксономии – это часть URL, которая отвечает за адреса категорий, меток и пользовательских таксономий в WordPress. Иногда возникает необходимость изменить или полностью удалить slug таксономии из URL, чтобы получить более чистые и удобные адреса. В этой статье мы подробно разберём, как это сделать технически, без использования плагинов, а также рассмотрим примеры с пользовательскими таксономиями.

Что такое slug таксономии и зачем его менять

В WordPress slug таксономии — это базовая часть URL, которая идёт перед названием термина. Например, для категории с адресом site.ru/category/news slug таксономии — это category. По умолчанию WordPress добавляет этот сегмент для удобства и уникальности, но в ряде случаев требуется убрать slug или заменить его на другой.

Причины для изменения slug таксономии могут быть разные:

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

Однако нужно помнить, что полное удаление slug таксономии требует доработки правил перезаписи URL (rewrite rules) и аккуратной обработки конфликтов с другими типами постов и страницами.

Как изменить slug таксономии через регистрацию таксономии

Если вы создаёте пользовательскую таксономию или хотите изменить slug для существующей, самый простой способ — указать параметр rewrite при регистрации таксономии. Вот пример кода для изменения slug:

function wptips_register_custom_taxonomy() {
    register_taxonomy('genre', 'post', array(
        'label'        => 'Жанры',
        'rewrite'      => array('slug' => 'books'), // изменяем slug на 'books'
        'hierarchical' => true,
        'public'       => true,
    ));
}
add_action('init', 'wptips_register_custom_taxonomy');

В этом примере мы регистрируем таксономию genre для постов и указываем slug books. Теперь URL для термина будет выглядеть так: site.ru/books/term-name.

Для встроенных таксономий, например category, изменить slug можно через фильтр register_taxonomy_args или с помощью плагинов, так как они регистрируются WordPress по умолчанию.

Как удалить slug таксономии из URL полностью

Удаление slug — более сложная задача, так как WordPress по умолчанию требует slug для правильной обработки URL. Однако есть способ добиться этого с помощью кастомных правил перезаписи и фильтров. Ниже пример, как убрать slug для таксономии genre:

function wptips_remove_taxonomy_slug() {
    // Убираем slug в URL для таксономии 'genre'
    add_rewrite_rule(
        '^([^/]+)/?$',
        'index.php?genre=$matches[1]',
        'top'
    );
}
add_action('init', 'wptips_remove_taxonomy_slug', 10, 0);

// Фильтр для правильного формирования ссылок таксономии
function wptips_remove_taxonomy_slug_link($url, $term, $taxonomy) {
    if ('genre' === $taxonomy) {
        $url = str_replace('/genre', '', $url);
    }
    return $url;
}
add_filter('term_link', 'wptips_remove_taxonomy_slug_link', 10, 3);

Этот код добавляет правило для обработки URL без slug и меняет формирование ссылок так, чтобы slug не появлялся. После добавления кода нужно сохранить постоянные ссылки в админке WordPress (Настройки → Постоянные ссылки), чтобы обновить правила перезаписи.

Однако будьте осторожны: такой подход может вызвать конфликты с другими страницами и постами, если имена терминов пересекаются с другими URL. Для сложных сайтов рекомендуется использовать плагины, например Clearfy Pro, который умеет оптимизировать URL и управлять slug таксономий безопасно.

Обработка конфликтов и SEO рекомендации при изменении slug таксономий

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

  • Перед изменением slug проверьте, не совпадает ли новый URL с другими страницами или постами;
  • Настройте 301 редиректы со старых URL на новые, чтобы сохранить SEO-ценность;
  • Используйте плагины для управления редиректами, например Expert Review;
  • Тестируйте изменения на тестовом сайте перед применением на живом;
  • Используйте инструменты Google Search Console для мониторинга ошибок и поискового трафика.

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

Если вы изменили slug с genre на books, добавьте редирект со старых URL:

function wptips_redirect_old_taxonomy_slug() {
    if (is_tax('genre')) {
        wp_redirect(site_url('/books/' . get_query_var('term')), 301);
        exit;
    }
}
add_action('template_redirect', 'wptips_redirect_old_taxonomy_slug');

Этот код автоматически перенаправит пользователей и поисковых роботов на новые URL с новым slug.

Заключение

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

Как создать автоматический редактор постов в WordPress
13.01.2026
Как установить ограничения на количество просмотров страницы в WordPress
29.12.2025
Как установить автоматическое обновление тем и плагинов WordPress без рисков
16.12.2025
Как использовать динамический CSS в WordPress для разных устройств
28.02.2026
Как настроить автоматическую работу с сообщениями в WordPress
21.11.2025