Редирект в WordPress на лендинг для незалогиненных пользователей с исключениями

27 июн. 2012 г., 03:40:14
Просмотры: 16.7K
Голосов: 3

Я использую следующий код в файле functions.php для перенаправления незалогиненных пользователей на определенную лендинг-страницу:

    <?php
if(!is_user_logged_in()) {
    wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
}

Проблема в том, что я больше не могу получить доступ к wp-login или wp-admin. Все URL перенаправляют на landingpage. Есть ли способ исключить определенные URL из этого перенаправления?

php
0
Все ответы на вопрос 2
6

что-то вроде:

if (
  !in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))
  && !is_admin()
  && !is_user_logged_in()
) {
  wp_redirect('http://www.mysite.com/landingpage', 301);
  exit;
}

должно сработать.

см. http://codex.wordpress.org/Function_Reference/is_admin & Проверить, является ли wp-login текущей страницей

27 июн. 2012 г. 03:45:57
Комментарии

Спасибо за ответ. Похоже, это сработает, но я получаю синтаксическую ошибку в строке 5. Есть идеи?

User User
27 июн. 2012 г. 03:57:09

Да, извини. Пропустил скобки.

User User
27 июн. 2012 г. 03:57:37

Какие скобки?

User User
27 июн. 2012 г. 04:07:05

Я уже отредактировал ответ. Те, что были после is_user_logged_in, изначально отсутствовали... в этом было дело?

User User
27 июн. 2012 г. 04:09:59

Нет, всё ещё получаю ошибку на строке 5

User User
27 июн. 2012 г. 04:11:57

В строке 2 также не хватало закрывающей скобки в конце.... (отредактировано)

User User
27 июн. 2012 г. 04:14:54
Показать остальные 1 комментариев
1
<?php
if($_SERVER['REQUEST_URI'] != '.../' || $_SERVER['REQUEST_URI'] != '.../'){

   if(!is_user_logged_in()) {
       wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
   }
}

Этот код проверяет, находитесь ли вы на определенной странице, перед выполнением перенаправления. Если первое условие возвращает true и пользователь не авторизован, произойдет перенаправление.

27 июн. 2012 г. 03:45:37
Комментарии

если я использовал это условие, то получил сообщение "Warning: Cannot modify header information".

Husain Ahmed Husain Ahmed
17 сент. 2016 г. 16:56:24