Как сделать автоматический редирект в WordPress по условиям

Автоматический редирект в WordPress — частая задача, которую приходится решать при работе с сайтами. Например, нужно перенаправить пользователей с мобильных устройств на мобильную версию, или сделать редирект по роли пользователя, либо при определённых GET-параметрах. В этой статье разберём, как реализовать разные виды условных редиректов с помощью кода и плагинов, а также рассмотрим примеры с реальными задачами.

Почему важен автоматический редирект по условиям в WordPress

Редиректы помогают улучшить UX, оптимизировать трафик и SEO. Иногда нужно направить посетителя на нужную страницу без его участия. Например:

  • Редирект с устаревших URL на новые;
  • Перенаправление пользователей с определёнными ролями (например, подписчикам сразу в личный кабинет);
  • Редирект мобильных пользователей на мобильную версию;
  • Перенаправление по условию из GET-параметров, например, после заполнения формы;
  • Редиректы для A/B тестирования.

Реализовать их можно разными способами — через плагины или код в functions.php. Далее рассмотрим и то, и другое.

Автоматический редирект с помощью плагинов

Если вы хотите быстро и просто настроить редиректы, подойдут плагины. Вот несколько популярных и удобных вариантов:

1. Redirection

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

Особенности:

  • Удобный интерфейс;
  • Поддержка условных редиректов с помощью регулярных выражений;
  • Логирование редиректов и ошибок.

Скачать и установить можно с официального репозитория WordPress или по ссылке: Redirection на WPShop.

2. Conditional Redirects

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

Подходит, если нужно сделать сложные логические проверки без написания кода.

Ссылка для установки: Conditional Redirects на WPShop.

Как сделать автоматический редирект в WordPress с помощью кода

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

Редирект по роли пользователя

Например, после входа перенаправить подписчиков на страницу личного кабинета.

function wpco_redirect_after_login( $redirect_to, $request, $user ) {
    // Проверяем, что это объект WP_User
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        if ( in_array( 'subscriber', $user->roles ) ) {
            // Редирект на личный кабинет
            return home_url( '/lichnyj-kabinet/' );
        }
    }
    return $redirect_to;
}
add_filter( 'login_redirect', 'wpco_redirect_after_login', 10, 3 );

Этот код нужно добавить в functions.php вашей темы или в кастомный плагин.

Редирект по User Agent (мобильные устройства)

Чтобы перенаправить мобильных пользователей на мобильную версию:

function wpco_mobile_redirect() {
    if ( wp_is_mobile() && ! is_page( 'mobile' ) ) {
        wp_redirect( home_url( '/mobile/' ) );
        exit;
    }
}
add_action( 'template_redirect', 'wpco_mobile_redirect' );

Функция wp_is_mobile() встроена в WordPress и определяет мобильное устройство.

Редирект по GET-параметру в URL

Иногда нужно сделать редирект, если в URL есть определённый параметр, например ?promo=1:

function wpco_redirect_by_query_param() {
    if ( isset( $_GET['promo'] ) && $_GET['promo'] === '1' ) {
        wp_redirect( home_url( '/special-offer/' ) );
        exit;
    }
}
add_action( 'template_redirect', 'wpco_redirect_by_query_param' );

Как избежать циклов и ошибок при редиректах

При работе с редиректами важно избегать зацикливания. Например, если условие срабатывает на странице, куда вы редиректите, то браузер будет постоянно перенаправляться.

Чтобы этого избежать, проверяйте, что текущий URL не совпадает с URL для редиректа:

function wpco_safe_redirect() {
    $target_url = home_url( '/mobile/' );
    if ( wp_is_mobile() && ! is_page( 'mobile' ) ) {
        if ( ! is_page( 'mobile' ) ) {
            wp_redirect( $target_url );
            exit;
        }
    }
}
add_action( 'template_redirect', 'wpco_safe_redirect' );

Это простая проверка, которая исключает повторный редирект с той же страницы.

Полезные советы по работе с редиректами в WordPress

Отслеживайте количество редиректов

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

Используйте 301 редирект для постоянных изменений

301 редирект сообщает поисковым системам, что страница перемещена навсегда. В коде WordPress функция wp_redirect() по умолчанию ставит 302 редирект, поэтому необходимо явно указать статус:

wp_redirect( $url, 301 );

Тестируйте редиректы на разных устройствах и браузерах

Убедитесь, что редиректы срабатывают правильно и не мешают пользователям.

Заключение

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

Если хотите расширить функционал вашего сайта, посмотрите плагины на WPShop.ru — там много полезных решений для WordPress.

Как правильно создать и использовать Metabox в WordPress
22.11.2025
Как сделать динамические шорткоды в WordPress: подробное руководство
02.11.2025
Как установить ограничения на размер файлов в WordPress
30.01.2026
Как удалить неиспользуемые файлы в Media Library WordPress: практические методы и примеры
28.12.2025
Автоматическое удаление старых комментариев в WordPress
09.02.2026