Описание old_slug_redirect_post_id
— Filter
Хук old_slug_redirect_post_id позволяет изменить ID поста при перенаправлении с устаревшего слага. Он срабатывает на этапе обработки запроса, когда WordPress пытается найти пост по старому слагу, и позволяет указать другой пост, если старый слаг больше не актуален
Примеры использования
Пример перенаправления на другой пост при использовании старого слага:
add_filter('old_slug_redirect_post_id', function($post_id, $slug) {
if ($slug === 'старый-слаг') {
return 123; // ID нового поста
}
return $post_id;
});
В этом примере мы перенаправляем запрос с ‘старый-слаг’ на пост с ID 123
Пример использования для перенаправления нескольких старых слагов:
add_filter('old_slug_redirect_post_id', function($post_id, $slug) {
$redirects = ['старый-слаг-1' => 123, 'старый-слаг-2' => 456];
if (array_key_exists($slug, $redirects)) {
return $redirects[$slug];
}
return $post_id;
});
Здесь мы создаем массив перенаправлений для нескольких старых слагов
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо управлять перенаправлениями с устаревших слагов на другие посты
– Производительность
Хук незначительно влияет на производительность, так как обрабатывается только при попытке получить пост по старому слагу
– Предупреждения
Следите за тем, чтобы не создавать циклы перенаправления, которые могут привести к ошибкам
Альтернативы
Тип: action
Этот хук позволяет выполнять действия после перенаправления, например, записывать логи
Используйте его, если нужно произвести дополнительные действия после успешного перенаправления