WordPressでログインして前のページにリダイレクトする

Last Updated: 2024 年 10 月 20 日 댓글

WordPress サイトからログインする直前のページに戻ることができます。いくつかの方法でログイン後に前のページにリダイレクトして、現在のページから離れないようにすることができます。

以下に示すユーザーコードを使用するか、LoginWPなどのプラグインを使用して、ログイン後に前のページに移動できます。特に、LoginWPプラグインは、ログインおよびログアウト後にリダイレクトされるURLを詳細に設定できます。

コードを使用して WordPressでログインして前のページにリダイレクトする

すべてのユーザーに対してログインして前のページに移動したい場合は、次のコードを チャイルドテーマの関数ファイルに追加できます。

/**
 * Redirect users to the previous page after login if no specific redirect is requested.
 * 
 * @param string $redirect_to
 * @param string $requested_redirect_to
 * @param WP_User|WP_Error $user
 * @return string
 */
function redirect_to_previous_page_after_login( $redirect_to, $requested_redirect_to, $user ) {
    if ( ! $requested_redirect_to ) {
        $referrer = wp_get_referer();

        // Ensure the referrer is not a variation of the wp-login or wp-admin page.
        if ( $referrer && strpos( $referrer, 'wp-login' ) === false && strpos( $referrer, 'wp-admin' ) === false ) {
            $redirect_to = wp_validate_redirect( $referrer, $redirect_to );
        }
    }

    return $redirect_to;
}

add_filter( 'login_redirect', 'redirect_to_previous_page_after_login', 10, 3 );

Avada など、いくつかのテーマでテストしたのでうまくいきました。もしあなたが望むように動作しない場合は、以下のコメントで使用しているテーマと症状について詳しく教えてください。

LoginWPプラグインを使用してログイン/ログアウト後にリダイレクトを設定する

ログイン/ログアウト後にリダイレクトされるページを詳細に設定するプラグインとして、Peter's Login Redirectというプラグインがありました。このプラグインはしばらくアップデートできず放置されたが、LoginWPという名称に変えて再び活発にアップデートとなっています。

プラグイン » 新しいプラグインを追加でLoginWPを検索して ログインWP (Formerly Peter's Login Redirect) プラグインをインストールできます。

このプラグインをインストールして有効にすると WordPress 管理ページの左メニューに ログインWP가 생성됩니다。 LoginWP » Redirection Rules ページに移動してリダイレクトルールを設定できます。

ログインおよびログアウト後に前のページに移動したい場合は、ログインURLとログアウトURLに {{previous_page}}を入力して 変更を保存 ボタンをクリックします。 (ログイン後またはログアウト後に特定のURLにリダイレクトしたい場合は、そのフィールドに希望のURLを入力するだけです。)

しかし、見てみると、ログイン後に現在のページにリダイレクトする機能は、LoginWP Proバージョンでのみサポートされているようです。

特定のユーザーのリダイレクトルールを設定する

LoginWPプラグインを使用すると、特定のユーザーまたはユーザーの役割に対して異なるリダイレクトルールを設定できます。

リダイレクトルールの右側にある 新規追加 ボタンをクリックして新しいリダイレクトルールを追加できます。

Rule Conditionから 또는 ユーザー役割、または User Capabilityをクリックすると、特定のユーザーまたは特定のユーザーの役割を指定できます。

管理者と一般ユーザーがログイン時に別のページにリダイレクトしたい場合は、この機能を使用できます。

を選択すると、特定のユーザーを指定できます。

ユーザー役割を選択した場合は、特定のユーザーの役割(管理者、編集者、執筆者、貢献者、購読者、顧客、店舗管理者など)を選択できます。

User Capabilityを選択すると、ユーザーの権限に応じて異なるリダイレクトルールを設定できます。

LoginWP Proで利用可能な追加のリダイレクト条件

LoginWP有料版では、次の条件が追加でサポートされています。

  • 初回ログイン後:ユーザーが初めてログインしたときにのみ特定のURLにリダイレクトする
  • WooCommerce:購入した商品、購入した商品カテゴリ、アクティブなユーザー登録、アクティブなメンバーシッププラン
  • LearnDash:登録されたコース、ユーザーグループ
  • LifterLMS:登録コース、登録メンバーシップ
  • TutorLMS:登録されたコース
  • LearnPress: 登録コース
  • ProfilePress:購読メンバーシッププラン
  • MemberPress: 購読メンバーシップ
  • Restrict Content Pro: アクティブなメンバーシップレベル
  • Paid Memberships Pro:購読メンバーシップレベル
  • WishList Member:購読メンバーシップレベル
  • WPML: サイトの現在の言語
  • Polylang:サイトの現在の言語

直接ページなどにコードを追加する場合

特定のページまたは文のログインリンクをクリックしてログインページでログイン情報を入力したときに、そのページまたはグローバル戻るをお勧めすることができます。 この場合は、次のような形式でログインリンクをかけてくれれば良いです。

" title="ログイン">ログイン

ホームページにリダイレクトさせるには:

" title="ログイン">ログイン

コードを使用します。 wp_login_urlテンプレートタグは、ユーザーがサイトにログインするためのURLを返します。 詳細については、 WordPress Codexページを参照してください。 何らかの理由で、たまにプラグインのクラッシュなどにより、上記のコードが正しく食わなければ login_redirectフィルタを介してリダイレクト先を指定することができます。

メモ:


コメントを残す

コメント