Описание функции wp_redirect()
Функция wp_redirect() выполняет HTTP перенаправление на указанный URL. Широко используется для перенаправления после обработки форм, а также для управления доступом к контенту. Важно вызывать эту функцию до отправки заголовков, иначе перенаправление не сработает.
Функция также может принимать код состояния HTTP, что позволяет гибко настраивать поведение редиректа.
Параметры
$location
Тип: string
Обязательный: Да
Описание: URL для перенаправления
Возможные значения:
$status
Тип: int
Обязательный: Нет
По умолчанию: 302
Описание: HTTP код состояния для редиректа
Возможные значения:
0: 301
1: 302
2: 303
3: 307
4: 308
Возвращаемое значение
Тип: void
Описание: Не возвращает значение, выполняет перенаправление
Возможные значения:
• Перенаправление на указанный URL
• Ничего, если заголовки уже отправлены
Примеры использования
Перенаправляет пользователя на заданный URL
wp_redirect('https://example.com');
exit;
Не забудьте вызвать exit после wp_redirect для завершения выполнения скрипта
Постоянное перенаправление старой страницы на новую
wp_redirect('/old-page', 301);
exit;
301 говорит поисковым системам, что это постоянное перенаправление
Перенаправление на страницу входа при неавторизованном доступе
if (!$user_logged_in) {
wp_redirect('/login');
exit;
}
Проверка состояния пользователя перед редиректом
Перенаправление старой страницы в рамках плагина
function my_custom_redirect() {
if (is_page('old-page')) {
wp_redirect('/new-page');
exit;
}
}
add_action('template_redirect', 'my_custom_redirect');
Использование хука template_redirect для выполнения перенаправления
Перенаправление устаревшей страницы на новую
$requested_url = $_SERVER['REQUEST_URI'];
if ($requested_url === '/deprecated-page') {
wp_redirect('/replacement-page');
exit;
}
Часто используется при изменении структуры URL
Безопасность
Валидация входных данных: Параметр location должен быть валидным URL
Санитизация: WordPress автоматически очищает входные параметры
Рекомендации: Используйте esc_url() для валидации URL перед передачей в wp_redirect
— Связанные функции
Безопасное перенаправление только на доверенные URL
Перенаправление на страницу админки
— Примечания
– Ограничения
Функция не будет работать, если заголовки уже отправлены
– Частые проблемы
- Ошибка ‘headers already sent’ при неправильном порядке вызова функций
- Некорректный URL может привести к ошибке 404