2016-12-12 21 views
0

Click to see the schema here!ユーザーが正しくログインしていないかチェックしてください。

私は広告サービスを行っています。私はwordpressテンプレートを使用しています。それはうまく動作しますが、私が問題を抱えていることがわかってから、何かを破壊するときは分かりません。

私がログインしていた場合、私はページをチェックしている新しい広告を投稿します。

if (!is_user_logged_in()) { 

    $login = $redux_demo['login']; 
    wp_redirect($login); exit; 
} else { 
} 

、ほとんどそれは(私がログインしています)ログインページに私をリダイレクトします。

if (is_user_logged_in()) { 
    global $redux_demo; 
    $profile = $redux_demo['profile']; 
    wp_redirect($profile); exit; 
} 

をそして、それは、プロフィールページに私をリダイレクトしている:ログインページ それはチェック!だから私がログインしていないことを初めて返すのですが、2ページ目にはログインしていることが返されます。 時々動作します。たとえば、私がログインして数分待っても正常に動作しますが、ログアウトしてログインするときに同じ問題が発生します。あなたはそれを修正するためのいくつかのアイデアを持っていますか?

+0

初めて確認するのはおそらく早すぎます。正確にそれに夢中になった行動は何ですか? –

+0

これは私のPHPセクションの最初のもので、ページの上部にあります。 –

答えて

0

リダイレクトのベストプラクティスは、template_redirectというWordPressアクションイベントフックを使用することです。このイベントは、あなたがしていることを保証します。その情報が

  • WordPressのリダイレクトを受け入れる準備ができている(ロード処理に早すぎるすなわちではなく)利用可能になった後

    • は、ユーザーのログイン状態の確認
    ご利用の場合は

    、次のしたいと思う:ユーザーがログインしている

    add_action('template_redirect', 'redirect_to_login_page_if_not_logged_in'); 
    /** 
    * Redirect to the login page if the user is not logged in. 
    * 
    * @since 1.0.0 
    * 
    * @return void 
    */ 
    function redirect_to_login_page_if_not_logged_in() { 
        if (is_user_logged_in()) { 
         return; 
        } 
    
        global $redux_demo; 
    
        if (isset($redux_demo['login'])) { 
         wp_redirect(esc_url($redux_demo['login'])); 
         exit(); 
        } 
    
        // Redirect to the built-in WordPress login page 
        auth_redirect(); 
    } 
    

    場合は、単に(returnで)救済します。それ以外の場合は、グローバル変数に 'login'キーが設定されているかどうかを確認してください。はいの場合は、そのページにリダイレクトします。そうでない場合は、auth_redirect()を使用して、内蔵のWordPressログインページにリダイレクトします。

  • +0

    このコードはどこに貼り付けますか?私の新しい広告ファイルには?私はそれを貼り付けます の '(if is_user_logged_in()){ $ログイン= $ redux_demo ['ログイン'; wp_redirect($ login);出口; } else { } ' これでログインしていなくてもページに入ることができます。 –

    +0

    @PawełLeżoch広告に使用しているテンプレートに上記のコードが必要です。はい、そのコードを置き換えます。あなたは他の認証コードに対しても同じことをしたいと思うでしょう。 – hellofromTonya

    +0

    まだ動作しません。私はまだそれと戦っている。私はこのコードを貼り付けますが、サイトはそれをしません、私はこの関数の中に書きます:wp_redirect( 'http://www.google.com'); しかし、私はリダイレクトされません。この機能は「可視」ではないように見えますが、実行されません。 –

    関連する問題