質問: いつもお世話になっております。 会員制サイトを運用しており、フロント側にログインページに遷移できる導線を設置しております。 ログインURLは以下の様に、元いるページにリダイレクトするような形で設置しております。 ``` ログイン 出力されるURL:/wp-login?redirect_to=【元いるページのURI】 ``` 「/wp-login」の後ろにパラメータが付いた場合は、指定したページにリダイレクトされるのですが、 パラメータが付いていない状態でログインすると、/wp-admin/の管理画面にリダイレクトされてしまいます。 上記より、トップページにリダイレクトされるようにfunction.phpに以下のように記述しましたが、 以下のように設定すると、「/login?redirect_to=【元いるページのURI】」が無視されて、すべてのログインがトップページにリダイレクトされてしまいます。 ``` function login_redirect_page() { return home_url(); } add_filter('login_redirect', 'login_redirect_page'); ``` ログインのリダイレクトの条件を以下のようにしたいのですが、どのようにすれば良いでしょうか。 A:リダイレクトのパラメータが付いている時は、パラメータのURLにリダイレクト B:パラメータがついていない時は、function.phpで指定したURLにリダイレクト 恐れ入りますが、わかる方がおりましたら、お教えいただければと思います。
回答: login_redirect フィルターにフックさせる関数は3つの引数をとります。二つ目の引数 `$requested_redirect_to` に `redirect_to` で渡されるパラメータが入ります。 ``` > A:リダイレクトのパラメータが付いている時は、パラメータのURLにリダイレクト > > B:パラメータがついていない時は、function.phpで指定したURLにリダイレクト > > > であれば、 ```