Редирект в WordPress на лендинг для незалогиненных пользователей с исключениями
Я использую следующий код в файле functions.php для перенаправления незалогиненных пользователей на определенную лендинг-страницу:
<?php
if(!is_user_logged_in()) {
wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
}
Проблема в том, что я больше не могу получить доступ к wp-login или wp-admin. Все URL перенаправляют на landingpage. Есть ли способ исключить определенные URL из этого перенаправления?

что-то вроде:
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 текущей страницей

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

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

<?php
if($_SERVER['REQUEST_URI'] != '.../' || $_SERVER['REQUEST_URI'] != '.../'){
if(!is_user_logged_in()) {
wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
}
}
Этот код проверяет, находитесь ли вы на определенной странице, перед выполнением перенаправления. Если первое условие возвращает true и пользователь не авторизован, произойдет перенаправление.
