Поддержка Проблемы и решения Переадресация на страницу авторизации

  • Решено bazinvlad

    (@bazinvlad)


    есть такой код. В этом случае неавторизованного пользователя, при заходе на любую страницу сайта, перенаправляет на страницу входа.

    function redirect_user() {
      if ( ! is_user_logged_in() && ! is_page( 'login' ) ) {
        $return_url = esc_url( home_url( '/login/' ) );
        wp_redirect( $return_url );
        exit;
      }
    }
    add_action( 'template_redirect', 'redirect_user' );

    Как сделать так, чтобы перенаправление было только с определенной страницы? Заранее спасибо!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yui

    (@fierevere)

    ゆい★ღツ

    if ( ! is_user_logged_in() && ! is_page( 'login' ) ) {

    на

    if ( ! is_user_logged_in() && is_page( 'тут вписываете ID страницы' ) ) {

    ID страницы — численное значение

    Пробовал так сделать, но браузер выдает сообщение «Сайт выполнил переадресацию слишком много раз.»
    Есть ли другие способы или в коде где-то ошибка?

    Модератор Yui

    (@fierevere)

    ゆい★ღツ

    логику кода смотрите

    ЕСЛИ пользователь-не-авторизован И находится-на-странице(с ИД) {
    выполнить код перенаправления
    }

    если ID страницы задан верно — см http://wp-kama.ru/function/is_page/comment-page-1
    то выполняться будет на определенной странице
    если is_page() без аргументов — на любой

    если это так, то при таком коде

    function redirect_user() {
      if ( ! is_user_logged_in() && ! is_page( 'login' ) ) {
        $return_url = esc_url( home_url( '/login/' ) );
        wp_redirect( $return_url );
        exit;
      }

    на страницу входа пользователя будет перенаправлять со страницы «login», но перенаправление происходит с любой страницы сайта. Проверил все, ID страницы вписываю правильно, но браузер выдает ту же ошибку.
    подскажите, пожалуйста, что делать?

    Модератор Yui

    (@fierevere)

    ゆい★ღツ

    if ( ! is_user_logged_in() && ! is_page( ‘login’ ) )

    ЕСЛИ не-авторизован И страница-не ‘login’

    все правильно что с любой перенаправляет, кроме login

    Спасибо большое!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Переадресация на страницу авторизации» закрыта для новых ответов.