2011-09-09

ログイン後のリダイレクト調整をする

デフォルトのWordPressは、ログアウトすると再びログインフォームに戻ってしまいます。1アクションではありますが、トップページ(記事)に戻るには、ひと手間がかかります。

特に、認証が必要ない場合はHTTP、管理画面やログインユーザはHTTPSに切り替えるという設定をしているので、ログアウト後はHTTPS –> HTTPのURLに戻って欲しいと考えました。

WordPress、ログアウト、リダイレクトというキーワードで検索すると、こちらの記事がヒット。

どうやらPHPのファイルに指定されている redirect_to の先を好きなURLに書き換えてあげれば良さそうとのこと。
対象のファイルは、wp-login.phpです。

URLを直書きしても良かったのですが、このWordPressはお引越しの可能性もあるので、サイトとして設定されているURLを指定するように変更。

//$redirect_to = !empty( $_REQUEST['redirect_to'] ) ?
//     $_REQUEST['redirect_to'] : 'wp-login.php?loggedout=true';

$redirect_to = site_url('', 'http');
wp_safe_redirect( $redirect_to );

サイトURLって、なにか定数か関数になってないかなあと思ったら、確かに、http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/site_url (テンプレートタグ)にそのものがありました。

この関数の引数には、サイトのルート下のパスと、Schemaと言ってHTTPのプロトコルを指定すれば良いらしく、上記の修正箇所では、 site_url('', 'http'); と書かれている部分が該当します。

おかげ様で、これでひと手間省けるようになりました。

0 件のコメント:

コメントを投稿