WordPressでユーザーをリダイレクトする方法

公開: 2018-08-08

リダイレクトは、Webサイト、プラグイン、およびテーマの標準的な部分です。 目の前で起こっていることもあり、後ろで何が起こっているのかさえ気づいていないかもしれません。

通常、リダイレクトは開発者に任されていますが、そのタスクを自分で実行できるようにするためのヒントをいくつか紹介します。

ログインに成功した後に特定のユーザーロールをリダイレクトする方法

記事のこの部分では、WordPressを利用したWebサイトに正常にログインした後、特定のユーザーがアクセスする場所を簡単に変更および制御できるコードを紹介します。

デフォルトでは、WordPressはすべてのユーザーをダッシュ​​ボードに誘導しますが、これは一部のユーザーにとって問題になる可能性があります。 管理者と作成者をバックエンドに留めておき、他のユーザーを直接ホームページ誘導したり、ユーザー専用に作成した別のフロントエンドページに誘導したりすることもできます。

役割に基づいてユーザーをリダイレクトするには、次の手順に従います。

  1. Functions.phpファイルを開きます
  2. 次のコードをコピーして貼り付けます。
 関数my_login_redirect($ url、$ request、 
$ user){if($ user && is_object($ user)&& 
is_a($ user、 'WP_User')){
if($ user-> has_cap( 'administrator')または 
$ user-> has_cap( '作成者')){
$ url = admin_url();
} そうしないと {
$ url = home_url( '/ custom-page /');
}
}
$ urlを返します。
}
add_filter( 'login_redirect'、 
'my_login_redirect'、10、3);
  1. 変更内容を保存

上記のコードは、管理者を必要な場所、つまり管理者パネルに残し、他のすべてのユーザーはカスタムページに移動します。

あなたは簡単に4番目と6番目のライン上の$ url変数を変更することによって、URLを変更して、あなたが彼らのために作成したポスト/ページにユーザーを導くことができます

ユーザーの役割を制御したい場合は、コードの3行目で簡単に制御できます。 上記の例では、管理者と作成者を管理者パネルに残しています。 そこに管理者だけが必要な場合は、写真から作成者を削除するだけです。

 if($ user-> has_cap( 'administrator')){

作成者を削除する代わりに、他の役割を追加することもできます。 誰がどのページにたどり着くかはあなた次第です。

それでおしまい。 このコードを使用すると、ユーザーがログインした後にリダイレクトを制御するためのプラグインは必要ありません。それでもコードを変更しない場合は、プラグインを使用してログインした後にユーザーをリダイレクトする方法を参照してください。

PeterのLoginRedirectプラグインを使用してログインした後にユーザーをリダイレクトする

先に示したコードを配置することで、ログイン後にユーザーをすばやくリダイレ​​クトできますが、これはコーディングに慣れていないユーザーにとっては最適なオプションではありません。 また、リダイレクトをより細かく制御したい場合は、コードを変更する方法を知っている必要があります。

コードを変更する代わりに、汚い仕事をするプラグインを紹介します。 あなたがしなければならないのは、どのユーザーがどこに行くかを決定し、いくつかのチェックボックスをクリックし、プラグインが残りを処理する間にURLを貼り付けることです。

Peterのログインリダイレクト

同じことを行うように設計されたWordPressプラグインは無数にありますが、記事のこの部分ではPeterのログインリダイレクトを選択しました。

このプラグインを使用すると、名前、ユーザーの役割、さらにはユーザーの機能に基づいてユーザーを選択し、ログイン後にそのユーザーがリダイレクトされるURLを貼り付けるだけです。そのユーザーをリダイレクトする場合は別のページを選択することもできます。ログアウト後のユーザーのグループ。 さらに、登録時に任意のユーザーのリンク先ページとして使用される別のURLを選択できます。

それだけでは不十分で、リダイレクトをさらに改善したい場合は、Peterのログインリダイレクトで対応できます。 たとえば、ユーザーごとに特定のページを作成した場合は、プラグインから直接URLを生成できます。 その場合、プラグインに記述されている単純なショートコードでユーザーのユーザー名入力し、その特定のユーザーを特定のページに誘導するのに十分です。

結局、プラグインの動作をさらに制御するのに役立つプラグインオプションがいくつか見つかります。 1種類のURLのみを使用するようにプラグインを設定できます。たとえば、内部リンクのみの使用を許可し、POSTおよびGETリダイレクトを制御し、必要に応じて外部リダイレクトファイルを使用し、権限レベルを選択してこのプラグインを制御できるユーザーを選択できます。 。

ログイン、ログアウト、登録のリダイレクトを管理する必要がある場合は、Peterのログインリダイレクトを使用すると、実質的に必要なすべてのものを入手できます。 そうそう、プラグインは無料だと言ったことがありますか? WordPressプラグインリポジトリから取得して数秒でインストールできます。その後は、 [設定]-> [ログイン/ログアウトリダイレクト]に移動するだけです。

ログアウト後にWordPressユーザーをリダイレクトする方法

デフォルトでは、ユーザーがWordPress Webサイトからログアウトすると、ログインページに戻ります。 ログアウトが成功したことをユーザーに通知するメッセージが表示され、残りのナビゲーションはユーザーに任されます。

しかし、ユーザーをホームページ、ユーザーに見せたいディスカッションページ、またはその他の関心のあるページに自動的にリダイレクトさせたい場合はどうでしょうか。 特別なウィジェットを含む別のログアウトページを作成したり、ユーザーを別の場所に誘導したりしたい場合がありますか? もしそうなら、あなたはすべてを実現するためにこの小さなコードが必要になります。

次の数行では、ユーザーを任意のURLに簡単にリダイレクトする方法を紹介します。 リダイレクトにコードを使用したくない場合は、それをすべて実行する簡単なプラグインを紹介します。 ただし、その前に、ユーザーをホームページにリダイレクトしましょう。

  1. Functions.phpファイルを開きます
  2. 次のコードをコピーして貼り付けます。
 add_action( 'wp_logout'、 'auto_redirect_after_logout');
関数auto_redirect_after_logout(){
wp_redirect(home_url());
出口();
}
  1. 変更内容を保存
  2. ログアウトして、美しいホームページをお楽しみください

そんなに簡単です。 コードから推測できるように、3行目を変更することでユーザーを他のURLにリダイレクトできます。 したがって、ユーザーを自分のサイトの別のページまたは外部ページに誘導する場合、コードは次のようになります。

 add_action( 'wp_logout'、 'auto_redirect_after_logout');
関数auto_redirect_after_logout(){
wp_redirect( 'http://www.firstsiteguide.com');
出口();
}

wp_redirect関数をさらに活用したい場合は、WordPressCodexページで詳細を確認できます。

ログインとログアウトのリダイレクト

価格:無料

ログインとログアウトのリダイレクト


この無料のプラグインは比較的シンプルで、完璧に機能します。 コードを処理する代わりに、ログインとログアウトリダイレクトは設定ページに追加のセグメントを作成します。 インストールしてアクティブ化した後[設定]-> [一般]移動し、ページの最後までスクロールする必要があります。 ここには、ログインリダイレクトとログアウトリダイレクト用の個別の入力ボックスがあります。 必要なURLを入力し、変更を保存すれば完了です。

WordPress Webサイトにさらにリダイレクトオプションが必要な場合は、投稿、ページ、カテゴリ、タグ、またはカスタムURLをリダイレクトするのに役立つ5秒リダイレクトプラグインを確認することをお勧めします。 それはあなたがあなたのURLを隠すことを可能にします、そしてそれはあなたの訪問者からアフィリエイトリンクまたはどんなURLも隠すために素晴らしいことでありえます。 プラグインは、リダイレクトされた各リンクに関する統計も表示するため、サイトで何が起こっているかを知ることができます。

コメントを残した後にユーザーをリダイレクトする

もちろん、記事の公開を開始するときは、他の人にコメントしてもらいたいと思うでしょう。 ガイドのこの部分では、コメントを送信した後にユーザーをリダイレクトする方法を紹介します。

この機能は、特定の状況で役立つ場合があります。 たとえば、整理している景品のカスタム「ありがとう」ページを作成したい場合があります。 そのため、訪問者がコメントを残して景品に参加すると、賞品に関する追加情報を提供できる「ありがとう」ページに簡単にリダイレクトできます。

コメントを残した後にユーザーをリダイレクトする理由は実際にはたくさんあるので、これ以上苦労することなく、プロセスを自動化するために必要なことは次のとおりです。

コメントを送信した後、ユーザーをリダイレクトします。

  1. Functions.phpファイルを開きます
  2. このコードをコピーしてファイルに貼り付けます。
 関数redirect_after_comment(){
wp_redirect( '/ thank-you /');
出口();
}
add_filter( 'comment_post_redirect'、 
'redirect_after_comment');
  1. 2行目のページの名前を変更します
  2. 変更内容を保存

それでおしまい。 これで、続行して関数をテストできます。 投稿を開いてコメントを残してください。 すべてを正しく行った場合は、http:/www.yoursite.com/thank-youページまたはコードの2行目に指定されているページに移動する必要があります。

ありがとうページ

コメントしてくれた人々に感謝することを忘れないでください。また、訪問者がサイトにとどまり、ブラウジングを続けてほしいことも忘れないでください。 最近の投稿または最も人気のある投稿のリストを追加することをお勧めします。あるいは、コメント投稿者が関心を持つ可能性のあるすべての関連する投稿をリストすることをお勧めします。 あなたがメーリングリストを持っているなら、これはそれへのサブスクリプションを提供するのに良い場所です。

この関数は、ユーザーがコメントを残した後にユーザーをリダイレクトする簡単で迅速な方法を提供しますが、いくつかの追加機能を提供するプラグインに興味があるかもしれません。

結果が1つしか見つからなかった場合は、検索後にユーザーをリダイレクトします

多数の記事を扱う場合は、検索機能が必須です。 あなたが毎日書いているなら、異なるカテゴリーに散らばっている記事の数を想像してください。 1日に3つの短い記事のみを公開する場合、最初の1年後にデータベースに1,000を超える異なるタイトルがあります。 ここで、特定の何かを探しているときに初めてサイトにアクセスすることを想像してみてください。検索する必要があります。

デフォルトでは、WordPressは投稿のタイトル、タグ、そしてもちろんコンテンツを検索します。 したがって、単語や特定のフレーズを検索すると、クエリを含む数十の投稿やページが見つかる可能性があります。 しかし、検索結果が1つしかない場合はどうなるでしょうか。

誰かが非常に特定のフレーズまたは文全体を検索していた場合、結果がわずかまたは1つだけになる可能性があります。 結果が1つしかない場合、ユーザーを検索結果ページにリダイレクトする必要はまったくありません。 代わりに、結果にある投稿/ページにそのユーザーを直接誘導しないのはなぜですか?

それを行う方法を見てみましょう:

  1. 関数.phpを開きます
  2. このコードをコピーして、ファイルの最後に貼り付けます。
 add_action( 'template_redirect'、 
'redirect_search_result);
関数redirect_search_result(){
if(is_search()){
グローバル$ wp_query;
if($ wp_query-> post_count == 1 && 
$ wp_query-> max_num_pages == 1){
wp_redirect(get_permalink( 
$ wp_query-> posts ['0']-> ID));
出口;
}
}
}
  1. 変更内容を保存

新しい機能のためにWordPressを準備しました。 変更を保存した後、ユーザーが1つの結果のみを返すものを検索するたびに、そのユーザーは投稿/ページに直接リダイレクトされます。

それほど多くないように思われる場合でも、訪問者はボタンをクリックするだけで保存できるので、きっとあなたを気に入ってくれるはずです。 ここでクリックを保存し、そこでクリックを保存すると、ユーザーエクスペリエンスが向上します。これは、おそらくWebサイトで必要なことです。

カテゴリ内の投稿が1つしかない場合は、ユーザーをリダイレクトします

結果が1つしかないカテゴリまたはタグページを開く代わりに、そのユーザーを投稿/ページに直接リダイレクトすることができます。 ほとんどのコードスニペットと同様に、コードをコピーして貼り付けるだけで十分です。

カテゴリまたはタグに投稿が1つしかない場合は、ユーザーをリダイレクトします。

  1. Functions.phpファイルを開きます
  2. 次のコードをコピーして貼り付けます。
 関数redirect_to_post(){
グローバル$ wp_query;
if(is_archive()&& $ wp_query-> post_count == 1){
ポスト();
$ post_url = get_permalink();
wp_redirect($ post_url);
}
} add_action( 'template_redirect'、 'redirect_to_post');
  1. 変更内容を保存

コードが完成し、変更を保存したら、投稿/ページが1つだけ含まれているカテゴリまたはタグページを開いて、機能をテストできます。 その1つの投稿/ページのみが表示されているページを開く代わりに、投稿に直接リダイレクトされます。 すごいですね。

一部のユーザーはこれに混乱する可能性があるため、結果が1つしか見つからず、リダイレクトが発生したことをユーザーに通知するカスタムメッセージを含めることをお勧めします。 これを行う場合は、単純な「echo」ステートメントを挿入することで、ユーザーがリダイレクトされた投稿/ページの上部にメッセージを残すことができます。 その場合、コードは次のようになります。

 関数redirect_to_post(){
グローバル$ wp_query;
if(is_archive()&& $ wp_query-> post_count == 1){
ポスト();
$ post_url = get_permalink();
wp_redirect($ post_url);
}
echo "結果が1つしか見つからなかったので、 
この投稿/ページにリダイレクトされました! ";
}
add_action( 'template_redirect'、 'redirect_to_post');

メッセージも実装されたので、これで完了です。投稿/ページが1つしかないカテゴリやタグを処理する必要はありません。 ただし、この機能を、このカテゴリに新しい記事を書かないことの言い訳にしないでください。

WordPressのランダムなページにユーザーをリダイレクトします

これはすべてのWordPressWebサイトの標準機能ではないかもしれませんが、サイトのどこかにある楽しいツールになることは間違いありません。 あなたがたくさん書いたり、多分たくさんのギャラリーを持っているなら、あなたは平均的なユーザーが見ることができない何千ものページを持ってしまう可能性があります。 では、ユーザーをランダムな投稿にリダイレクトして、物事をもう少し面白くしてみませんか?

もちろん、ユーザーの知らないうちにランダムな投稿にユーザーをリダイレクトしたり、ホームページでリダイレクトしたりすることはありません。 ただし、ユーザーがクリックできる簡単なボタンまたはリンクを作成すると、サイトの別のページに移動できます。 多分それはギャラリーです。 たぶん、あなたが何年も前に書いたクールな社説です。 知るか。 それは楽しいことができます。

始めましょう:

  1. まず、リダイレクトリンクを準備する必要があります。 Functions.phpファイルを開きます
  2. 次のコードをコピーして貼り付けます。
 add_action( 'init'、 'random_add_rewrite');
関数random_add_rewrite(){
グローバル$ wp;
$ wp-> add_query_var( 'random');
add_rewrite_rule( 'random /?
  1. 変更内容を保存
  2. www.yourdomain.com/?random=1にアクセスします

、 'index.php?random = 1'、 'top'); } add_action( 'template_redirect'、 'random_template'); function random_template(){if(get_query_var( 'random')== 1){$ posts = get_posts( 'post_type = post&orderby = rand&numberposts = 1'); foreach($ posts as $ post){$ link = get_permalink($ post); } wp_redirect($ link、307); 出口; }}

この後、リンク/ボタンを作成する準備が整います。 http://www.yourdomain.com/?random=1にリンクするだけで、ユーザーがページを開くたびに、ランダムなページにリダイレクトされます。 新機能をお楽しみください。

結論にあなたをリダイレクトする

遅かれ早かれ、特定の状況で特定のユーザーをリダイレクトする必要があります。 それには正当な理由があり、訪問者に何かを購入させようとしている場合でも、ログインプロセスをより快適にしたい場合でも、このチュートリアルはリダイレクトの管理に役立ちます。

コーディングに十分慣れている場合は、これを改善し、さまざまな状況でユーザーをリダイレクトすることもできます。 そうでない場合は、これらの例があなたのニーズをカバーするのにちょうど十分であったことを願っています。