wp_redirect не работает при переходе на www версию сайта

3 авг. 2011 г., 20:01:50
Просмотры: 829
Голосов: 0

Следующая функция отлично работает, когда залогиненные посетители переходят на http://sitename.com, перенаправляя их на главную страницу сайта. Однако когда залогиненные посетители переходят на http://www.sitename.com, они некорректно перенаправляются на http://sitename.com/splashpage. Кто-нибудь знает, в чем может быть причина?

Я пробовал изменить настройки сайта, используя http://www.sitename.com в качестве WordPress и URL адресов сайта, но это просто обращает проблему - теперь некорректный редирект происходит, когда залогиненный пользователь переходит на http://sitename.com.

// ПЕРЕНАПРАВЛЯЕМ ПОЛЬЗОВАТЕЛЕЙ НА SPLASH PAGE, ЕСЛИ ОНИ НЕ ЗАЛОГИНЕНЫ
add_action ('template_redirect','mkm_restrict_access',1);
function mkm_restrict_access() {
    $url = site_url('/splashpage/');
    if (is_page('splashpage') || is_page('login')) {
        // ничего не делаем
    } elseif (!is_user_logged_in()) {
        wp_redirect( $url ); 
        exit; 
    }
}

Спасибо за помощь!

1
Комментарии

Может быть, есть более подходящее действие для вызова этого редиректа? Что-то, что срабатывает после переадресации со страницы с http://www.example.com на http://example.com?

Michelle Michelle
4 авг. 2011 г. 19:39:17
Все ответы на вопрос 1
0

Разобрался, хотя это самое неудачное решение из возможных: я использовал wp_footer вместо template_redirect. Если у кого-то есть лучшее решение или более подходящий хук - буду рад услышать, спасибо!

РЕДАКТИРОВАНО: Оказалось, это не то решение, которое я думал. Проблема была в плохо написанной функции, и действительно нужно было использовать template_redirect. Подробнее в Не получается сделать редирект

4 авг. 2011 г. 16:43:45