「Peter’s Login Redirect」プラグインを使うと、ログインした際にダッシュボード以外のページへリダイレクトさせることができる。
ただ、ユーザごとにログイン先をちょっと変えたい(ユーザIDを入れたりしたい)ときにうまくできなかったので、ちょこっとだけカスタマイズしてみた。
コード
437行目周辺、「redirect_wrapper」関数にちょっとだけ追記するんじゃ。
※ソースコードはVersion: 2.9.1のものを使用。
function redirect_wrapper( $redirect_to, $requested_redirect_to, $user )
{
$rul_local_only = rulRedirectFunctionCollection::get_settings( 'rul_local_only' );
$rul_allow_post_redirect_override = rulRedirectFunctionCollection::get_settings( 'rul_allow_post_redirect_override' );
// If they're on the login page, don't do anything
if( !isset( $user->user_login ) )
{
return $redirect_to;
}
if( ( admin_url() == $redirect_to && $rul_allow_post_redirect_override ) || !$rul_allow_post_redirect_override )
{
$rul_url = redirect_to_front_page( $redirect_to, $requested_redirect_to, $user );
// 追加ここから =====================================================
// URLを個別ユーザごとにカスタマイズ
$rul_url = preg_replace("/@user/",$user->user_login,$rul_url);
// 追加ここまで =====================================================
if( $rul_url )
{
if( 1 == $rul_local_only )
{
rulRedirectFunctionCollection::rul_trigger_allowed_host( $rul_url );
return $rul_url;
}
elseif( 2 == $rul_local_only )
{
wp_redirect( $rul_url );
die();
}
else
{
return $rul_url;
}
}
}
return $redirect_to;
}
設定手順
設定→Login / Logout Redirectorから、下記画像のように設定するだけ。
@user の部分がログインしたユーザ名に置き換えられる。