WordPressにログインしていない場合にユーザーをリダイレクトする方法»ページリダイレクト
公開: 2022-01-02前回の投稿では、ユーザーがWordPressにログインしているかどうかを確認する方法を示しました。 WordPressユーザーがログインしているかどうかを確認する一般的な理由の1つは、WordPressユーザーのログインステータスに基づいてさまざまなページを表示することです。 WordPressにログインしていない場合にユーザーをリダイレクトする場合は、このクイックチュートリアルに示すように、functions.phpファイルにコードスニペットを追加することでこれを実現できます。
なぜWordPressでユーザーをリダイレクトするのですか?
ユーザーのリダイレクトは、ほとんどのWordPressサイトにとって重要な要件です。 ユーザーをあるページから別のページにリダイレクトしたい場合があります。 たとえば、チェックアウト後にWooCommerceユーザーをリダイレクトしたり、Webサイトへの登録またはリダイレクトログイン後にユーザーをリダイレクトしたりできます。
ログインしていない場合にリダイレクトすることは、最も一般的なリダイレクトの1つです。 WordPressでリダイレクトを管理するのに役立つプラグインがありますが、この問題を解決する小さなスニペットを追加することは、サードパーティのプラグインに依存するよりも優れたソリューションです。
このチュートリアルでは、選択したページにログインしていないユーザーのリダイレクトを作成するスニペットをテーマまたはプラグインに追加する方法を示します。
WordPressにログインしていない場合にリダイレクトする手順
WordPressにログインしていない場合にリダイレクトを実装するには、次の手順に従う必要があります。
- WordPressサイトにログインし、メインダッシュボードメニューの外観メニューの下にあるテーマエディターに移動します。
- アクティブなWordPressテーマのfunctions.phpファイルを開きます。 CPanelまたはFTPを使用して、アクティブなテーマのfunctions.phpファイルにアクセスすることもできます。 このパスにあります–
wp-root-installation / wp-content / themes / active-theme / functions.php - admin初期化フックにフックするアクションフックを作成します–
admin_init
、たとえばadd_action('init', 'redirect_if_not_logged_in')
。 このフックには、ユーザーがWordPressにログインしているかどうかを確認するロジックを備えたコールバック関数があり、ログインしていない場合は、目的のページにリダイレクトされます。 - 上記のようにコールバック関数を作成し、それに応じてコードを追加します。
- 変更を保存し、フロントエンドに移動して、ログインしていないユーザーがコードで追加したページにリダイレクトされるかどうかをテストします。
ユーザーがWordPressにログインしていない場合にリダイレクトを追加する方法を示しましょう。 ローカルホストのインストールでデフォルトのWordPressテーマを使用しますが、これはテーマやホスティング環境に関係なく、他のすべてのサイトで機能します。
リダイレクトを追加するコードは、ログに記録されていないユーザーからのコンテンツを制限する場合のほとんどの場合のように、別の条件をとることもあります。次の2つの条件を確認します。
- ユーザーがログインしている場合
- 制限されたコンテンツがあるページにユーザーがいる場合
これらの条件が満たされた場合は、wp_redirect()関数を使用して、ユーザーを選択したページにリダイレクトする必要があります。
WP関数:wp_redirect()
これは、ユーザーをリダイレクトするためにテーマとプラグインで使用できるWordPressリダイレクト機能です。 この関数の一般的な表現は次のとおりです。
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
ご覧のとおり、関数には次の3つのパラメーターがあります。
パラメータ | 説明 |
$location | これは、ユーザーをリダイレクトするURLです。 ユーザーがログインしていないときにこの関数を使用する場合は、コードサンプルに示されているように、ユーザーをリダイレクトするページへのURLを指定する必要があります。 |
$status | これはオプションのパラメータであり、頻繁に使用されることはないかもしれませんが、使用するのはHTTP応答ステータスコードです。 デフォルトは「302」で、永続的なリダイレクトには301を使用できます。 このパラメータを301リダイレクトオプションとともに使用する場合は注意が必要です。 |
$x_redirect_by | これは単にリダイレクトを適用するアプリケーションであり、これによってデフォルト値であるWordPressが変更されることはめったにありません。 |
ユーザーがログインしていない場合のテンプレートリダイレクトアクション
WordPressにログインしていないユーザーをリダイレクトするために、ユーザーが次のようにログインしているかどうかを条件付きでチェックするwp_redirect関数を使用できるようになりました。
add_action( 'template_redirect'、 'redirect_if_user_not_logged_in'); 関数redirect_if_user_not_logged_in(){ if(is_page( 'slug || ID')&&!is_user_logged_in()){//例はis_page(23)で、23はページIDです。 wp_redirect( 'http:// your-redirect-page-here'); exit; // wp_redirect()がexit / dieを持つことは非常に重要なので、このexitを決して忘れないでください } }
条件付きチェックのスラッグをそれぞれのページに置き換え、上記のコードのリダイレクトURLを置き換えて、functions.phpに追加し、そのページのURLにログインしていないユーザーをリダイレクトします。
ユーザーがログインしていない場合の管理者初期リダイレクトアクション
または、wordPressにログインしていない場合は、 template_redirect
の代わりにadmin_init
をフックして、ユーザーをリダイレクトすることもできます。
アクションフックを追加する点を除けば、コードは同じである必要があります。 コードは次のようになります。
add_action( 'admin_init'、 'redirect_if_user_not_logged_in'); 関数redirect_if_user_not_logged_in(){ if(!is_user_logged_in()&& is_page( 'slug')){ wp_redirect( 'http:// your-redirect-page-here'); 出口; } }
このコードをデフォルトのWordPressテーマfunctions.phpに追加し、リダイレクトを作成するページのスラッグと宛先のURLを追加すると、次のように完全に機能します。
最終的な考え
ユーザーがWordPressにログインしていない場合にリダイレクトを作成する場合は、最初にその投稿で共有したコードを使用してユーザーがログインしているかどうかを確認してから、 wp_redirect()関数を使用してユーザーが必要な新しい宛先を追加する必要があります特定のページまたは投稿にアクセスするとリダイレクトされます。
このコードは、テーマのfunctions.phpファイルに追加することも、カスタムWordPressプラグインの一部として使用することもできます。 wp_redirect関数を使用する場合、この関数は自動的に終了しないため、 exitを追加することを忘れないでください。
WordPressプラグインの開発者は、$ locationパラメーターホストが許可されているかどうかをチェックするため、リダイレクトのより良い方法を提供する別のWordPressリダイレクトプラグインwp_safe_redirect()を検討することもできます。
同様の記事
- WooCommerceでレビューを削除または無効にする方法
- プラグインがWordPressでアクティブかどうかを確認する方法[3つの方法]
- WordPressでカスタムウィジェットエリアを作成する方法ステップバイステップ
- WooCommerceで商品を非表示にする方法、またはカテゴリや役割で商品を非表示にする方法
- WoocommerceでReturnto ShopLinkを変更する方法
- WordPressカスタムユーザーロールを作成する方法
- WordPressで現在のユーザーロールを取得する方法とロールを表示する
- キャッチされていないタイプのエラーを修正する方法:wp.templateは関数ではありません
- WordPressカスタムフックを使用するための完全なガイドdo_action&apply_filtersと例
- プラグインを使用せずにWordPressに正常にログインした後にユーザーをリダイレクトする方法
- 確認なしのWooCommerceログアウト:「ログアウトしてもよろしいですか?」を削除する方法
- WooCommerceにログインした後にカートにリダイレクトする方法
- ログアウトボタンを作成するためのWooCommerceログアウトPHPスニペット
- プラグインのWooCommerce管理者通知を作成する方法–WooCommerce開発
- 削除する方法がカートに追加されましたメッセージWooCommerce
- WooCommerceで価格の後にテキストを追加する方法»価格サフィックスを追加
- WooCommerceでチェックアウトテキストに進むを変更する方法