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

В этой статье разберём, как реализовать автоматическую переадресацию (редирект) на сайте WordPress в зависимости от различных условий. Это полезно, когда нужно перенаправлять посетителей на разные страницы в зависимости от устройства, роли пользователя, даты или других параметров. Рассмотрим несколько реальных сценариев и приведём примеры кода, которые можно использовать в вашем шаблоне или плагине.

Что такое переадресация в WordPress и зачем она нужна

Переадресация — это перенаправление пользователя с одного URL на другой. В WordPress она часто используется для:

  • Обновления структуры сайта без потери трафика
  • Перенаправления мобильных пользователей на мобильную версию
  • Ограничения доступа к определённым страницам в зависимости от роли пользователя
  • Реализации маркетинговых акций с временными редиректами

Хотя существует множество плагинов для редиректов, иногда требуется более гибкий и точечный подход с кастомными условиями и логикой. Для этого идеально подходит код на PHP, который можно добавить в файл functions.php вашей темы или в собственный плагин.

Как реализовать редирект по типу устройства: мобильный и десктоп

Один из популярных кейсов — отправлять мобильных посетителей на отдельную мобильную версию сайта или страницу.

Для этого можно использовать PHP-библиотеку Mobile Detect. Пример использования:

require_once get_template_directory() . '/inc/Mobile_Detect.php';
function wptool_mobile_redirect() {
    if (is_admin()) return; // не редиректить в админке
    $detect = new Mobile_Detect;
    if ($detect->isMobile() && ! $detect->isTablet()) {
        wp_redirect(home_url('/mobi-version/'), 302);
        exit;
    }
}
add_action('template_redirect', 'wptool_mobile_redirect');

Здесь Mobile_Detect.php нужно добавить в папку inc вашей темы. Этот код проверяет, что пользователь зашёл с мобильного устройства (без планшета) и перенаправляет его на страницу /mobi-version/.

Альтернативы: плагины для мобильных редиректов

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

  • Any Mobile Theme Switcher — переключает тему по устройству.
  • Redirection — мощный менеджер редиректов с условными правилами.

Редирект по роли пользователя: как перенаправлять администраторов и подписчиков

Иногда нужно показывать разный контент или страницы в зависимости от роли пользователя. Например, при входе подписчиков отправлять на страницу профиля, а администраторов — на панель управления.

Пример кода для автоматического редиректа после входа пользователя:

function wptool_redirect_after_login($redirect_to, $request, $user) {
    if (isset($user->roles) && is_array($user->roles)) {
        if (in_array('administrator', $user->roles)) {
            return admin_url();
        } elseif (in_array('subscriber', $user->roles)) {
            return home_url('/profile/');
        }
    }
    return $redirect_to;
}
add_filter('login_redirect', 'wptool_redirect_after_login', 10, 3);

Этот фильтр перехватывает стандартный редирект после входа и перенаправляет пользователя в зависимости от роли.

Другие варианты использования ролей для редиректов

Можно добавлять редиректы и на фронтенде, например, если гость пытается зайти на страницу, доступную только для авторизованных пользователей. Проверка и редирект:

function wptool_protect_page_redirect() {
    if (is_page('premium-content') && !is_user_logged_in()) {
        wp_redirect(wp_login_url(get_permalink()));
        exit;
    }
}
add_action('template_redirect', 'wptool_protect_page_redirect');

Условный редирект по дате или времени: как сделать временные акции и события

Реализуем редирект на специальную страницу акции в заданный период, например, с 1 по 10 июля.

Пример кода:

function wptool_date_based_redirect() {
    if (is_front_page()) {
        $start = strtotime('2024-07-01');
        $end = strtotime('2024-07-10 23:59:59');
        $now = current_time('timestamp');
        if ($now >= $start && $now <= $end) {
            wp_redirect(home_url('/summer-sale/'), 302);
            exit;
        }
    }
}
add_action('template_redirect', 'wptool_date_based_redirect');

Такой код перенаправит посетителей главной страницы на страницу акции в нужные даты.

Автоматизация с плагинами

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

Как избежать проблем с переадресациями и SEO рекомендации

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

  • Используйте правильные коды статуса: 301 — постоянный редирект, 302 — временный.
  • Проверяйте, что в коде вызывается exit; сразу после wp_redirect(), чтобы скрипт не выполнялся дальше.
  • Тестируйте редиректы на разных устройствах и ролях.
  • Не делайте слишком много условий в одном хуке — разбивайте логику для удобства поддержки.

Выводы и практические советы

Автоматические переадресации в WordPress — мощный инструмент для точной настройки поведения сайта под нужды бизнеса или проекта. С помощью PHP-кода вы можете реализовать любые условия, которые не всегда доступны в плагинах.

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

Как автоматизировать обновление WordPress и плагинов с помощью кода
25.11.2025
Автоматическое изменение заголовков постов WordPress по шаблону
24.03.2026
Как использовать WP-Cron для автоматизации задач в WordPress
26.04.2026
Как автоматизировать управление ролями пользователей в WordPress с помощью кода
01.02.2026
Как автоматизировать создание копий публикаций в WordPress с помощью кода
24.12.2025