Title: Редирект для рубрик
Last modified: 25.10.2021

---

# Редирект для рубрик

 *  [rootey](https://ru.wordpress.org/support/users/rootey/)
 * (@rootey)
 * [4 года, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d1%80%d0%b5%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82-%d0%b4%d0%bb%d1%8f-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba/)
 * Для обычной записи можно в ручном режиме изменить ссылку, то есть назвать статью
   по другому, обновить запись и там будет автоматический редирект со старой ссылки
   на новую. Для этого редиректа ненужно даже ничего настраивать.
 * Возможно ли настроить такой же редирект для рубрик, меток и прочих категорий?
   и если да то как это сделать? По умолчанию при изменении ссылки, старая ссылка
   начинает отображать страницу 404

Просмотр 1 ответа (всего 1)

 *  [wpteu](https://ru.wordpress.org/support/users/wpteu/)
 * (@wpteu)
 * [4 года, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d1%80%d0%b5%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82-%d0%b4%d0%bb%d1%8f-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba/#post-12216835)
 * Функционал редиректа для постов в WordPress реализован из коробки. При изменении
   slug записи блога через панель управления, WordPress добавляет новую запись в
   таблицу БД wp_postmeta. У этой записи поле meta_key равно _wp_old_slug, а поле
   meta_value равно старому slug поста. И когда запрашивается пост, WordPress выполняет
   запрос к этой таблице БД, чтобы проверить, есть ли посты, у которых изменился
   slug. И если есть — выполняет редирект.
 * Для страниц и такономий такой функционал еще не реализован (по крайней мере, 
   не был реализован два года назад, когда я столкнулся с аналогичной проблемой).
   Так что это надо делать самому — повесить обработчик на хук wp_update_term_data.
   Событие происходит еще до того, как новые значения таксономии записаны в базу
   данных.
 *     ```
       /**
        * Filters term data before it is updated in the database.
        *
        * @since 4.7.0
        *
        * @param array  $data     Term data to be updated.
        * @param int    $term_id  Term ID.
        * @param string $taxonomy Taxonomy slug.
        * @param array  $args     Arguments passed to wp_update_term().
        */
       $data = apply_filters( 'wp_update_term_data', $data, $term_id, $taxonomy, $args );
       ```
   
 * `
    Здесь есть массив $data, который содержит новый slug, и есть идентификатор
   таксономии $term_id — так что можно выполнить запрос к БД и получить старый slug(
   см. подходящие хуки в wp-includes/taxonomy.php). Если они не совпадают — нужно
   записать в БД старый slug, чтобы в будущем выполнять редирект.
 * У меня получилось примерно так [https://tokmakov.msk.ru/blog/item/391](https://tokmakov.msk.ru/blog/item/391),
   но там было массовое изменение slug для постов, рубрик и меток — не то, что нужно,
   но дает общее представление способа реализации.

Просмотр 1 ответа (всего 1)

 Тема «Редирект для рубрик» закрыта для новых ответов.

## Метки

 * [редирект](https://ru.wordpress.org/support/topic-tag/%d1%80%d0%b5%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82/)

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 1 ответ
 * 2 участника
 * Последний ответ: [wpteu](https://ru.wordpress.org/support/users/wpteu/)
 * Последняя активность: [4 года, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d1%80%d0%b5%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82-%d0%b4%d0%bb%d1%8f-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba/#post-12216835)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
