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

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

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

Slug — это уникальный идентификатор таксономии в URL. Например, для категории с названием «Новости» slug может быть novosti, и URL будет выглядеть как site.ru/novosti/post-title. Иногда slug по умолчанию может быть неудобным, слишком длинным или конфликтовать с другими элементами сайта.

Изменение slug позволяет:

  • Оптимизировать URL для поисковых систем;
  • Сделать адреса удобнее и понятнее пользователям;
  • Избежать конфликтов с другими страницами и таксономиями;
  • Подстроить структуру сайта под конкретные задачи.

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

Как изменить slug таксономии через код в functions.php

Самый надёжный способ изменить slug таксономии — это переопределить параметр rewrite при регистрации таксономии. Если у вас кастомная таксономия, зарегистрированная через функцию register_taxonomy, можно просто обновить slug в массиве аргументов.

Пример изменения slug для таксономии genre:

function wplink_change_taxonomy_slug() {
  register_taxonomy('genre', 'post', array(
    'label' => 'Жанры',
    'rewrite' => array('slug' => 'zhanr'), // новый slug
    'hierarchical' => true,
  ));
}
add_action('init', 'wplink_change_taxonomy_slug', 11);

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

После изменения slug обязательно перейдите в админке WordPress в "Настройки > Постоянные ссылки" и нажмите "Сохранить изменения", чтобы обновить правила перезаписи (rewrite rules).

Как изменить slug для встроенных таксономий (категорий, тегов)

Для встроенных таксономий, таких как категории (category) и теги (post_tag), изменить slug можно с помощью фильтра register_taxonomy_args:

function wplink_change_builtin_taxonomy_slug($args, $taxonomy) {
  if ($taxonomy === 'category') {
    $args['rewrite']['slug'] = 'rubrika'; // новый slug для категорий
  }
  if ($taxonomy === 'post_tag') {
    $args['rewrite']['slug'] = 'metka'; // новый slug для тегов
  }
  return $args;
}
add_filter('register_taxonomy_args', 'wplink_change_builtin_taxonomy_slug', 10, 2);

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

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

Удаление slug таксономии из URL — задача нестандартная и требует дополнительных действий. Например, вместо URL site.ru/zhanr/fantastika вы хотите получить site.ru/fantastika. Это может вызвать конфликты с постами или страницами, так как URL перестанет однозначно указывать на таксономию.

Для решения этой задачи можно использовать плагин Clearfy Pro, который умеет убирать slug для таксономий с минимальным риском для SEO и функционала.

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

Пример упрощённого кода для удаления slug из URL таксономии genre:

function wplink_remove_taxonomy_slug($post_link, $post, $leavename) {
  if ('post' === $post->post_type) {
    $terms = wp_get_post_terms($post->ID, 'genre');
    if ($terms && !is_wp_error($terms)) {
      $post_link = str_replace('/' . $terms[0]->slug, '', $post_link);
    }
  }
  return $post_link;
}
add_filter('post_type_link', 'wplink_remove_taxonomy_slug', 10, 3);
<

Однако, для полноценной маршрутизации нужно также фильтровать запросы, что значительно сложнее.

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

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

  • Clearfy Pro — мощный плагин с настройками для оптимизации URL и удаления slug таксономий без потери функционала;
  • Remove Taxonomy Base — бесплатный плагин для удаления базового slug таксономий;
  • Custom Permalinks — позволяет создавать любые пользовательские постоянные ссылки, включая таксономии;

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

Как проверить и исправить ошибки после изменения slug таксономий

После изменения или удаления slug таксономий важно проверить, что ссылки работают корректно и не вызывают ошибок 404. Для этого:

  • Очистите кэш сайта и браузера;
  • Перейдите в "Настройки > Постоянные ссылки" и нажмите "Сохранить изменения" для обновления правил;
  • Проверьте несколько страниц с таксономиями;
  • Используйте инструменты для проверки ошибок, например, Google Search Console;
  • Настройте 301 редиректы со старых URL на новые, чтобы не потерять SEO позиции.

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

Итоги и рекомендации по работе со slug таксономий в WordPress

Изменение slug таксономий — полезная практика для оптимизации URL и улучшения структуры сайта. Для кастомных таксономий достаточно изменить параметр rewrite при регистрации. Для встроенных таксономий используйте фильтр register_taxonomy_args.

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

Всегда не забывайте делать резервные копии и тестировать сайт после изменений. Это поможет избежать потери трафика и ошибок.

Если вы хотите попробовать готовое решение, рекомендую Clearfy Pro — плагин, который значительно упрощает работу с URL и slug таксономий.

Как изменить URL для страниц WordPress с помощью функции wp_link_ru_change_page_url
08.12.2025
Автопостинг в WordPress: как настроить автоматический публикации
22.11.2025
Как создать уникальные URL для товаров в WooCommerce
08.02.2026
Как удалить пустые категории в WordPress без плагинов
21.12.2025
Как удалить повторяющиеся вариации товара в WooCommerce
01.05.2026