AI要約
会員制サイト、オンラインストア、またはログインが必要なサイトを運営している場合、デフォルトのWordPressログインが役に立たないことに気づいたことがあるでしょう。
誰かが登録またはサインインした後、WordPressはユーザーを管理画面または一般的なプロフィール画面に誘導しますが、通常はユーザーに着地させたい最後の場所です。
長年にわたり、多くの登録およびログインフローを設定してきましたが、物事をシンプルに保つアプローチは、独自のフォームを作成し、その後、ユーザーを希望の場所に正確に送信することです。
このガイドでは、WPFormsを使用してカスタムログインおよび登録フォームを作成し、リダイレクトを追加して、ユーザーがウェルカムページ、アカウントダッシュボード、または選択した任意のページに直接移動するようにします。
WordPressでログインと登録後にユーザーをリダイレクトする方法
まずフォームを作成し、ログインまたはサインアップ後に訪問者をリダイレクトするあらゆる方法を説明します。さらに、方法もご紹介します
ログインまたは登録後にユーザーをリダイレクトする理由
デフォルトでは、WordPressはすべてのユーザーアカウントを同じように扱います。有料顧客、コース受講生、コミュニティメンバーのいずれであっても、ログインすると/wp-adminに送信され、登録画面はWordPressが提供する、装飾のないプレーンなフォームになります。


これはサイト管理者にとっては問題ありませんが、他のすべての人にとっては混乱を招きます。アカウントを新しく作成した顧客は、WordPressのバックエンドを見たくありません。リダイレクトを設定することで、いくつかの方法でこれを解決できます。
- バックエンドへのアクセスを制限する:顧客やメンバーが、見る必要のない管理エリアではなく、フロントエンドのページにリダイレクトされるようにします。
- 重要なページに誘導する:新規登録者はウェルカムページまたはオンボーディングページに、再訪問者はアカウントダッシュボードに誘導します。
- ブランディングに合わせる:一般的なWordPressのログイン画面と登録画面を、サイトの他の部分と同じデザインのフォームに置き換えます。
WordPressには組み込みのログインリダイレクト機能がありますが、これはデフォルトのログイン画面にのみ適用され、変更するには通常コードの編集が必要です。
独自のログインフォームを使用すると、代わりにシンプルなリダイレクト設定が利用できるようになります。今回はこの方法で進めます。
ステップ1:WPForms Proプラグインをインストールする
カスタムログインフォームと登録フォームを作成する最も簡単な方法は、WPFormsを使用することです。WPFormsは、市場で最も初心者向けのWordPressフォームビルダーです。2,100以上のフォームテンプレートが用意されており、数分で設定できる既製の登録フォームテンプレートも含まれています。
この作業においてWPFormsで最も気に入っている点は、リダイレクト設定がフォーム内に直接あることです。ログインフォームまたは登録フォームを作成したら、ユーザーが次にどこへ行くかを指定するのは簡単な設定一つで済みます。そのため、推測する必要も、テーマに何かを貼り付ける必要もありません。
ログインフォームと登録フォームはUser Registrationアドオンで実行され、このアドオンはWPForms Proライセンス以上で利用可能です。登録、ログイン、パスワードリセットフォームを処理し、ユーザーロールの割り当てやメール認証の要求も可能です。


始めるには、Proライセンスを購入してください。次に、ウェブサイトにWPFormsをインストールします。手順が必要な場合は、WordPressにプラグインを追加する方法の手順に従ってください。
ステップ2:ユーザー登録アドオンのインストール
WPFormsを有効にしたら、次にフォームを機能させるアドオンをインストールします。WordPress管理画面から、WPForms » Addonsに移動します。


検索バーでユーザー登録を検索し、その下にあるアドオンをインストールをクリックします。アドオンは数秒でインストールされ、自動的に有効になるため、すぐに最初のフォームを作成する準備が整います。


ステップ3:登録フォームの作成
次にWPForms » 新規追加に移動してフォームビルダーを開き、後で認識できる名前をフォームに付けます。


テンプレートライブラリをスクロールし、ユーザー登録フォームテンプレートを選択します。


WPFormsは、新しいユーザーが必要とするすべてのフィールドがすでに配置された、完全な登録フォームを作成します。


すべてのテンプレートは完全にカスタマイズ可能なので、追加のフィールドをドラッグしたり、短い自己紹介などの不要なフィールドを削除したりできます。
フィールドの選択についてさらに詳しく知りたい場合は、ユーザー登録フォームの作成方法に関するガイドで、さらに多くの可能性について説明しています。今回は、フォームの設定を行いましょう。
ステップ4:登録フォーム設定の設定
ここでは、人々がどのように登録し、その後アカウントがどうなるかを決定します。フォームビルダー内の設定 » ユーザー登録をクリックします。


最初のセクションであるフィールドマッピングでは、各フォームフィールドをユーザーのWordPressアカウントの詳細(ユーザー名、メールアドレス、パスワードなど)に一致させます。


下にスクロールしてユーザーロールセクションに移動します。ここで、新規登録者が取得するロールとアクセスレベルを選択します。通常の購読者スタイルのアカウントの場合は、ドロップダウンから購読者を選択します。


そのすぐ下にはユーザーアクティベーションとログインがあります。デフォルトではオフになっており、これは、フォームが送信された瞬間にアカウントが有効になることを意味します。アクティベーションを要求すると、スパム登録が減り、誰が参加できるかをより細かく制御できるため、オンにすることをお勧めします。


ユーザーアクティベーションを有効にするをオンにすると、アクティベーション方法のドロップダウンが表示されます。手動承認は、各アカウントを自分で承認することを意味し、ユーザーメールは、新しいユーザーにアクティベーションリンクを含むメッセージを送信します。


ユーザーメールを選択した場合、そのメッセージをカスタマイズするための追加オプションが表示されます。{url_user_activation}スマートタグは、人々がアカウントをアクティベートするためにクリックするリンクなので、そのままにして、好きなように編集してください。


アクティベーションリンクをクリックした後、ユーザーが着陸するページを選択することもできます。ドロップダウンから適切な確認ページを選択してください。


アカウントが作成されたら、自動的にログインさせたいですか?自動ログインを有効にするトグルをオンにすると、WPFormsは登録後すぐにユーザーをログインさせます。


下部近くにメール通知セクションがあります。トグルを使用して、誰にどのメールが送信されるかを制御し、いずれかの横にあるテンプレートを編集をクリックして、文言を変更します。


すべてが正しく表示されたら、右上隅にある保存をクリックします。


ステップ5:ログインフォームの作成
登録フォームが完了したら、戻ってくる人のためにログインフォームが必要です。再度WPForms » 新規追加に移動し、今回はユーザーログインフォームテンプレートを選択します。


ユーザー名とパスワードフィールド、そしてユーザーのログインをより迅速にするためのRemember Meオプションを備えたシンプルなフォームです。


フォームの動作を調整するには、ログインフォームの設定 » ユーザー登録を開きます。


ここでは、すでにサインインしているユーザーからフォームを非表示にし、代わりにメッセージを表示するように選択できます。ユーザーがログインしている場合はフォームを非表示にするの横にあるトグルをオンにして、フォームを保存してください。


ステップ6:ログインフォームと登録フォームの埋め込み
フォームは作成されたので、次は実際のページに配置します。WPFormsは、このプロセスを迅速に行います。フォームビルダーの右上にある埋め込みボタンをクリックします。


新しいログインおよび登録ページを公開するため、新しいページを作成を選択します。これらのページは後でデフォルトのWordPressのページに代わって使用できます。


ページに名前を付けて、開始をクリックします。


フォームはページコンテンツに直接ドロップされます。公開をクリックしてライブにします。


登録ページがライブになりました。テーマのスタイルとカスタマイズされたフィールドが、固定的なデフォルトのWordPressページではなく使用されていることに気づくでしょう。
ログインフォームも同様の埋め込み手順を繰り返して、両方のページを準備してください。既存のページやウィジェット領域にフォームを配置したい場合は、任意のページにログインおよび登録フォームを表示する方法をご覧ください。


ステップ7:ログインまたは登録後のユーザーリダイレクト
ユーザーがログインまたは登録フォームを送信した後に特定の場所に送信するには、フォームを編集し、設定 » 確認を開き、確認タイプをページを表示またはURLに移動に設定します。


まず、リダイレクトを追加したいフォームを編集します。次に、フォーム設定の確認タブに移動します。


デフォルトでは、WPFormsは送信後に確認メッセージを表示します。
確認タイプをページを表示に切り替えて、サイト上の任意のページを選択するか、URLに移動を選択してカスタムリンクを貼り付けます。
今後、フォームを送信した人は誰でも、メッセージを見る代わりにそこに転送されます。


同じ設定は両方のフォームで機能し、個別に設定できます。そのため、登録フォームは新規ユーザーをウェルカムページまたはオンボーディングページに送信でき、ログインフォームはリピーターユーザーをアカウントダッシュボードに直接送信できます。
通常の連絡フォームまたは注文フォームの後にもリダイレクトが必要な場合は、プロセスは同じです。フォーム送信後にユーザーをリダイレクトする方法に関するガイドで詳細を確認できます。
ステップ8:デフォルトのWordPressログインおよび登録ページのリダイレクト(オプション)
この時点で、カスタムページはライブになっていますが、訪問者はまだこれらのURLから古いWordPress画面に直接アクセスできます。
- 登録ページ:
https://example.com/wp-login.php?action=register - ログインページ:
https://example.com/wp-login.php
これらのデフォルトのURLを新しいページに転送したい場合は、小さなコードスニペットを追加できます。何か問題が発生した場合にサイトを危険にさらすことなくスニペットを安全に追加できるWPCodeプラグインを使用することを推奨します。テーマのfunctions.phpファイルを直接編集するのではなく、無料のWPCodeプラグインを使用してください。
登録ページの場合、このスニペットを追加し、/registration-url を新しい登録ページのスラッグに置き換えてください。
// Redirect the default WordPress registration page
function my_registration_page_redirect() {
global $pagenow;
if ( strtolower( $pagenow ) == 'wp-login.php' && isset( $_GET['action'] ) && strtolower( $_GET['action'] ) == 'register' ) {
wp_redirect( home_url( '/registration-url' ) );
exit;
}
}
add_action( 'init', 'my_registration_page_redirect' );
ログインページの場合、このスニペットを追加し、/login-url をカスタムログインページの slug に置き換えてください。
// Redirect the default WordPress login page
function my_login_page_redirect() {
$login_page = home_url( '/login-url' );
$page_viewed = basename( $_SERVER['REQUEST_URI'] );
if ( $page_viewed == 'wp-login.php' && $_SERVER['REQUEST_METHOD'] == 'GET' ) {
wp_redirect( $login_page );
exit;
}
}
add_action( 'init', 'my_login_page_redirect' );
exit; の行は重要です。これがないと、一部のセットアップ(特にマルチサイト)では、ユーザーがデフォルトの wp-signup.php 画面にスリップしてしまう可能性があります。これらのスニペットを配置すると、カスタムログインページと登録ページが WordPress のデフォルトを完全に置き換えます。
ログインおよび登録リダイレクトのトラブルシューティング
ログインページがリフレッシュし続けるか、フォームに跳ね返されるだけでリダイレクトされない場合は、ほぼ常にブラウザのキャッシュまたはCookieの問題です。キャッシュとCookieをクリアしてから、プライベートウィンドウで再度テストしてください。
リダイレクトがまったく機能しない場合は、フォームの 確認 設定を開き、タイプがデフォルトのメッセージではなく、ページを表示 または URLに移動 に設定されていることを確認してください。
自動ログインを有効にする をオンにしたときに、エントリーまたは通知メールが届かなくなった場合は、自動ログインをオフにしてフォームをテストし、それが原因であることを確認してください。原因である場合は、WP Mail SMTP のような配信性の修正で通常はメールの問題が解決します。
WordPressのログインと登録のリダイレクトに関するFAQ
WordPressのログインフォームのリダイレクトを設定すると、特にユーザーロールとコード不要のオプションに関して、いくつかの一般的な質問が生じます。独自のログインと登録のリダイレクトを作成する前に、簡単な回答を以下に示します。
ユーザーをロールに基づいて異なるページにリダイレクトできますか?
WPForms の確認リダイレクトは、フォームを送信したすべての人を同じ宛先に送信します。ロールごとに異なるページが必要な場合は、最も簡単な WPForms のアプローチは、ロールごとに個別のフォームを使用し、それぞれに独自のredirectを設定することです。デフォルトのログインでのロールごとの分岐には、ステップ8のオプションのコードメソッドを WordPress の login_redirect フィルターで使用します。
コードを書かずにログインリダイレクトを設定できますか?
はい。ステップ1から7は完全にコード不要です。フォームを作成し、各フォームの 確認 設定でリダイレクトを設定します。
コードに触れる部分はステップ8のみで、これはオプションであり、デフォルトのWordPressのログインと登録のURLをリダイレクトしたい場合にのみ必要です。
カスタムログインフォームは、デフォルトのWordPressログインのようにユーザーをリダイレクトしますか?
実際には、より多くの制御が可能になります。デフォルトのWordPressログインリダイレクトは制限されており、通常は変更にコードが必要です。WPFormsのログインフォームを使用すると、設定から宛先を選択でき、そのフォームを好きなページに配置できます。
デフォルトのWordPressログインページをカスタムページにリダイレクトするにはどうすればよいですか?
ステップ8のログインリダイレクトスニペットを無料のWPCodeプラグインを使用して追加し、プレースホルダーのスラッグをカスタムログインページに置き換えます。その後、wp-login.php にアクセスした人は誰でも、代わりにブランドのログインページに着陸します。
次に、WordPressログインページをカスタマイズする
リダイレクトが機能するようになったので、サイトの他の部分と同じようにログイン体験にも磨きをかける価値があります。
サイトのブランディングを強化するためのカスタムログインフォームの作成方法に関するガイドでは、デザイン面を解説しています。オプションを比較したい場合は、最高のWordPressログインページプラグインをご覧ください。
フォームの作成準備はできましたか?最も簡単なWordPressフォームビルダープラグインで今日から始めましょう。WPForms Proには多くの無料テンプレートが含まれており、14日間の返金保証が付いています。
この記事がお役に立った場合は、FacebookとTwitterでフォローして、WordPressの無料チュートリアルやガイドをさらにご覧ください。



このコードを使用すると、/wp-login?action=registerのリダイレクトはうまく機能しますが、/loginおよび/wp-login.phpページについても同様のことを行うにはどうすればよいですか?
このコードで試しましたが、本当に何をしているのかわかりません。基本的に推測しているだけです。
//ログインページのリダイレクト
function my_login_page_redirect()
{
global $pagenow;
if ( ( strtolower($pagenow) == ‘wp-login.php’) && ( strtolower( $_GET[‘action’]) == ‘login’ ) ) { wp_redirect( home_url(‘/my-account’)); } }
add_filter( ‘init’, ‘my_login_page_redirect’ );
ジョンさん、こんにちは。
良い質問ですね。実際、このためのコードはカスタムログインページチュートリアルで共有しました(その記事の番号2を参照してください)。
お役に立てれば幸いです! 🙂
こんにちは、
ユーザーが登録/ログインするためにクリックしたボタンに基づいて、特定の場所にリダイレクトすることは可能ですか?
つまり、異なるボタンはそれぞれ異なる登録/ログインフォームにリンクされ、それぞれが特定の住所にリダイレクトされるということです。
それは可能でしょうか?
よろしくお願いします。
こんにちは、Sowxさん
ご質問の意図を100%理解しているか自信がありませんが、はい、ウェブサイトのボタンを異なるフォームにリンクし、それらのフォームが送信されたら、ユーザーを別のURLにリダイレクトさせることができます。フォーム送信時のユーザーリダイレクトに関する詳細情報が必要な場合は、こちらのガイドをご覧ください!
お役に立てば幸いです!
こんにちは、自動ログインとリダイレクトはうまく機能していますが、なぜか通知メールが届きません。(ユーザーもエントリーセクションに表示されません)
自動ログインを無効にすると、再び機能します。
こんにちは、Kamiさん
メール通知の配信に関する問題が発生しているとのこと、申し訳ありません。この問題をWP Mail SMTPプラグインを使用して解決する方法を示す記事をご覧ください。
お役に立てれば幸いです 🙂
こんにちは、返信ありがとうございます。メール通知は正常に機能していますが、他の問題が残っています。フォームはユーザーのエントリーをまだ保存していません。何度もテストしましたが、自動ログインとリダイレクトはうまく機能しており、メール通知も同様ですが、なぜかフォームにユーザーのエントリーが保存されません。どうすればよいかアドバイスをお願いします。ありがとうございます。
こんにちは、Kamiさん
有料のWPFormsライセンスをお持ちの場合は、サポートチームにご連絡ください。問題についてさらに詳しく調査いたします。
ありがとうございます!🙂
こんにちは!「functions.phpファイルにコードスニペットを貼り付ける方法」で説明されている「スニペット」プラグインにこのコピーしたコードを追加しようとすると、エラーが発生します。
コード:
// 登録ページの転送
function my_registration_page_redirect()
{
global $pagenow;
if ( ( strtolower($pagenow) == ‘wp-login.php’) & ( strtolower( $_GET[‘action’]) == ‘register’ ) ) {
wp_redirect( home_url(‘https://date.intro-social.com/new-user/’));
}
}
add_filter( ‘init’, ‘my_registration_page_redirect’ );
エラーメッセージ:
慌てないでください
保存しようとしているコードスニペットは、6行目で致命的なエラーを引き起こしました:
構文エラー、予期しない「;」
スニペットの前のバージョンは変更されておらず、このサイトの他の部分は通常どおり機能しているはずです。
ブラウザの戻るボタンを使用して前のページに戻り、コードエラーを修正してみてください。必要であれば、このページを閉じて、行った変更を破棄することもできます。このサイトに変更は加えられません。
回避策を見つけました。グローバルリダイレクトマネージャーを使用することで、ログインをWordPressからWPFormsにリダイレクトすることができました。
タイラーさん、お知らせいただきありがとうございます!解決できたとのこと、承知いたしました。その他ご不明な点がございましたら、お気軽にお問い合わせください!
タイラーさん、サイトで一時的に小さな不具合が発生し、コードに特殊文字が挿入されてしまいました。その間にコードをテストされたのだと思います。
コードのフォーマットは修正されました。もう一度そのコードを試していただけますでしょうか。正常に動作するはずです。
ご迷惑をおかけして申し訳ありません!
「exit」を追加する必要があると思います。例:
if ( wp_redirect( home_url(‘/registration’) ) ) { exit; }
そうでない場合、マルチサイトでは依然としてwp-signup.phpページが表示されます。
ジョージさん、こんにちは!
フィードバックありがとうございます。チームに伝え、提案を検討させていただきます。
この件についてご連絡いただき、ありがとうございます 🙂
ユーザーログイン後、HOME(メインページ)にアクセスできなくなります。つまり、プロフィールページに永続的にリダイレクトされます。
他のすべてのサブページ(お問い合わせなど)にはアクセスできますが、ログイン後はHOMEのみアクセスできません。
ガボールさん、こんにちは。
ご迷惑をおかけして申し訳ありません!有料ライセンスをお持ちの場合は、サポートチームにご連絡ください。喜んでお手伝いさせていただきます。
ありがとう