最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

WordPressでログインユーザーに異なるメニューを表示する方法

WordPressサイトの訪問者がログインしているのに、あちこちに「ログイン」や「登録」ボタンが表示されていて混乱することがあるのに気づいたことはありませんか?あるいは、メンバーがアカウントダッシュボードを見つけにくく、メニューに埋もれているのかもしれません。

これらの小さなフラストレーションは、最も忠実なユーザーでさえ、自分のウェブサイトで部外者のように感じさせる可能性があります。

そして、パーソナライズされたメニューはすべてを変えることができます。ログインユーザーに「マイアカウント」や「ログアウト」などのオプションを表示することで、一般的なリンクよりも、サイトがより歓迎され、プロフェッショナルに感じられます。

良いニュースは?WordPressで動的なメニューを作成するのは、思っているよりも簡単です。

このガイドでは、スキルレベルに関係なく、ログインユーザーに異なるメニューを表示する簡単な2つの方法を紹介します。💡

WordPressでログインユーザーと未ログインユーザーに異なるナビゲーションメニューを表示する

WordPressでログインユーザーに異なるメニューを表示する理由

訪問者とそのアクティビティに基づいてWordPressウェブサイトのさまざまなエリアを変更すると、サイトが各ユーザーに合わせてパーソナライズされたように感じられます。

このパーソナライズされたコンテンツは、WordPressウェブサイトでのユーザーエクスペリエンスを向上させるのに役立ちます。

ユーザー登録やログインが不要なウェブサイトを運営している場合、ウェブサイト全体で同じナビゲーションメニューを使用できるでしょう。しかし、ログインユーザーにカスタムメニューを表示することで、他のウェブサイトは大きなメリットを得られる可能性があります。

たとえば、オンラインストア、オンライン学習プラットフォーム、またはWordPressメンバーシップサイトコミュニティのようなウェブサイトは、すべてパーソナライズされたナビゲーションメニューから恩恵を受けることができます。

ログインユーザー向けのパーソナライズされたナビゲーションメニューは、登録したものを簡単に見つけるのに役立ちます。

たとえば、オンラインストアのユーザーはアカウントを管理できます。また、有料コミュニティのメンバーは、サブスクリプションを簡単に更新したり、購入した限定のオンラインコースを表示したりできます。

ログインユーザー向けの異なるメニュー

デフォルトでは、WordPressでは必要なだけ多くのナビゲーションメニューを作成できます。ただし、WordPressテーマの特定の場所には1つのメニューのみを表示するように選択できます。

ログインユーザー向けのメニューを設定する前に、まず2つの別々のナビゲーションメニューを作成する必要があります。1つはログインユーザー用、もう1つはログアウトユーザー用です。始めましょう。

⚠️ ちょっとしたメモです!共有している方法は、WordPressクラシックテーマを使用しているユーザー向けに設計されています。WordPress 5.8以降のフルサイト編集(FSE)機能を備えたブロックテーマを使用している場合、この方法は機能しない可能性があります。 

WordPressでログインユーザーと非ログインユーザー向けのメニューを作成する

ユーザーの2つのタイプごとに個別のメニューを作成するには、WordPressダッシュボードの外観 » メニューページに移動します。

ウェブサイトで全ユーザーが使用しているナビゲーションメニューが既にある場合は、それをデフォルトメニューとして使用できます。

メインメニュー

その後、「新しいメニューを作成」リンクをクリックすると、ログインユーザー用の新しいカスタムメニューを作成できます。

ここでは、登録ユーザーまたはログインユーザーに表示したいメニュー項目を追加します。たとえば、メニューにログアウトリンクを追加する場合があります。

画面の左側には、ウェブサイトのページリストが表示されます。メニューに追加したいページにチェックボックスを入れ、「メニューに追加」ボタンをクリックするだけです。

ログインメニュー

画面右側のメニュー項目をドラッグアンドドロップして並べ替えることもできます。

ページをさらに下にスクロールすると、メニューを表示する場所を選択できます。ただし、このメニューに場所を割り当てる必要はありません。記事の後半でそれを行います。

変更を保存するには、「メニューを保存」ボタンをクリックすることを忘れないでください。

メニューの作成の詳細については、WordPressナビゲーションメニューの初心者向けガイドをご覧ください。

これで、ログインユーザーに異なるメニューを表示する準備が整いました。このガイドで説明するすべての方法の概要を以下に示します。

よりパーソナライズされた体験の準備はできましたか?さあ始めましょう!🌟

方法1.プラグインを使用してWordPressでログインユーザーに異なるメニューを表示する

ログインユーザーに異なるメニューを表示する最も簡単な方法は、 Conditional Menus プラグインを使用することです。まず、それをインストールしてアクティブ化しましょう。

詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。

有効化したら、WordPressダッシュボードから外観 » メニューに移動する必要があります。次に、「メニューの管理」タブに切り替えます。

ここから、WordPressテーマで定義されている利用可能なメニューの場所と、現在表示されているメニューのリストが表示されます。

例えば、現在の「プライマリメニュー」の場所には「メインメニュー」が表示されています。

メニューの場所を管理

次に、特定の条件が一致した場合に異なるメニューを表示するようにプラグインに指示する必要があります。

これを行うには、「+ 条件付きメニュー」リンクをクリックします。次に、ドロップダウンメニューからログインユーザーに表示したいナビゲーションメニューを選択できます。

ログイン中のメニューを選択

次に、「+ 条件」リンクをクリックします。

これにより、選択できる条件のリストが表示されるポップアップが表示されます。

ログインユーザーを条件として選択

「ユーザーログイン中」オプションの横にあるチェックボックスをオンにしてから、「保存」ボタンをクリックするだけです。

これで、ウェブサイトにアクセスして、ログイン中のユーザーメニューが機能していることを確認できます。WordPress管理画面からログアウトして、他のすべてのユーザーに表示されるナビゲーションメニューを表示することもできます。

ログインユーザー向けの異なるメニュー

方法2. コードを使用してWordPressでログインメニューを手動で選択する

この方法では、WordPressウェブサイトにコードを追加する必要があります。これを行ったことがない場合は、WordPressでコードスニペットをコピーして貼り付ける方法に関するガイドをご覧ください。

一般的に、ブログではテーマのfunctions.phpファイルまたはサイト固有のプラグインにコードスニペットを追加する必要があると説明されています。ただし、この方法はウェブサイトに問題を引き起こす可能性があるため、お勧めしません。

代わりに、WPCodeプラグインを使用できます。

WPCodeを使用すると、テーマファイルを直接編集せずにカスタムコードスニペットをサイトに追加できます。また、これらのスニペットを管理し、安全に実行されるようにすることで、サイトが破損するリスクを最小限に抑えます。

ℹ️ 注:当社のパートナーブランド全体で、WPCodeは各サイトの機能を拡張するためにカスタムスニペットを追加するための定番ツールでした。さらに詳しく知りたい場合は、WPCodeの包括的なレビューをお読みください。

始めるために、WPCodeプラグインをインストールしましょう。ログインユーザーに異なるメニューを表示するために必要なすべての機能が含まれているため、WPCodeの無料版を使用できます。

しかし、コードの改訂履歴やスニペットの公開タイミングのスケジュール設定などの高度な機能へのアクセスをご希望の場合は、WPCode Proへのアップグレードをご検討ください。

インストールしたら、コードスニペット » スニペットを追加に移動します。

WPCodeのコードスニペット追加ボタン

これにより、WPCode のコードスニペットギャラリーが開きます。

ここから、「+カスタムスニペットを追加」ボタンをクリックできます。

WPCodeにカスタムスニペットボタンを追加

次にWPCodeのテキストエディタが表示されます。

次のステップは、コードスニペットにタイトルを追加し、「コードタイプ」ドロップダウンメニューから「HTMLスニペット」を選択することです。

WPCodeでスニペットのタイトルを追加し、コードタイプを選択する方法

完了したら、次のコードを「コードプレビュー」フィールドにコピー&ペーストするだけです。

function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
// Logged in menu to display
$args['menu'] = 43;

} else {
// Non-logged-in menu to display
$args['menu'] = 35;
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

WPCodeエディタでは、このようになります。

WPCodeのコードプレビューのカスタムHTMLスニペット

4335を、先ほど作成したナビゲーションメニューのIDに置き換えてください。

ナビゲーションメニューのIDは、「メニュー」ページで選択すると見つけることができます。メニューID番号はブラウザのアドレスバーに表示されます。

ナビゲーションメニューのIDを見つける

すべての詳細が正しいことを確認したら、青い「スニペットを保存」ボタンをクリックしてください。

それで終わりです!

ボーナスチップ:WordPressメニューでの条件付きロジックのさらなる使用例

ナビゲーションに関しては、条件付きロジックは、ログインユーザーに異なるメニューを表示する以上のことができます。以下にいくつかの簡単な例を示します。

  • ユーザーロールに基づいて異なるメニューを表示する:管理者は共同作業者とは異なるメニューを表示できます。たとえば、管理者にはサイト設定やユーザー管理などの管理者専用オプションを表示し、共同作業者やその他のユーザーロールには一般的なナビゲーションリンクを提供します。
  • 異なるページに異なるメニューを表示する:ブログページや商品ページに独自のメニューを表示したいですか?条件付きロジックを使用すると、それぞれに特定のメニューを作成でき、ナビゲーションをコンテンツに合わせて調整できます。
  • ランディングページでナビゲーションを非表示にする:ランディングページは、邪魔がない方が最適です。条件付きロジックを使用してナビゲーションメニューを非表示にし、行動喚起(サインアップフォームや商品オファーなど)に注意を集中させます。

詳細については、WordPressでメニューに条件付きロジックを追加する方法に関するガイドを参照してください。

よくある質問:WordPressでログインユーザーに異なるメニューを表示する方法

WordPressでユーザーごとに異なるメニューを表示する方法について、まだご質問がありますか?以下に役立つ簡単な回答をいくつかご紹介します。

ユーザーロールに基づいて異なるメニューを表示できますか?

もちろんです。管理者、編集者、またはサイト上のその他のカスタムユーザーロールに対して、独自のメニューを表示できます。Conditional Menusプラグインは、これを設定するための簡単なオプションを提供しており、チームメンバーのナビゲーションを調整するのに最適です。

プラグインを使用するのと、コードを手動で追加するのとでは、どちらが良いですか?

ほとんどのユーザーには、Conditional Menus や WPCode のようなプラグインの使用をお勧めします。これらのツールを使えば、テーマファイルを触ることなく、異なるメニューを簡単に表示できます。

WPCodeは、コードを使用する柔軟性を好む場合に特に役立ちます。カスタムPHPスニペットを安全に追加し、WordPressダッシュボードから管理できます。functions.phpを直接編集する必要はありません。

手動コーディングは開発者にとって依然として良い選択肢ですが、それ以外の人にとっては、プラグインの方が安全で初心者フレンドリーな選択肢です。

特定のページでナビゲーションメニューを非表示にできますか?

はい、同じ条件付きロジックを使用して、特定のページでナビゲーションメニューを非表示にすることができます。これは、ランディングページでは一般的な戦略であり、邪魔なものを排除して訪問者を行動喚起に集中させます。

追加リソース:WordPressのユーザーロールとサイトナビゲーション

この記事が、WordPressでログインユーザーに異なるナビゲーションメニューを簡単に表示する方法を学ぶのに役立ったことを願っています。次に、次のガイドも参照してください。

この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterFacebookでも私たちを見つけることができます。

開示: 当社のコンテンツは読者によってサポートされています。これは、一部のリンクをクリックすると、手数料が発生する可能性があることを意味します。WPBeginnerがどのように資金調達されているか、なぜそれが重要なのか、そしてどのように私たちをサポートできるかを確認してください。こちらが当社の編集プロセスです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

101 CommentsLeave a Reply

  1. このコードは、phpコードタイプを選択しないと実行されないことがわかりました。HTMLからPHPに変更したところ、素晴らしかったです!

  2. Clear and actionable guide!
    Thank you for this comprehensive guide on showing different menus to logged-in users in WordPress.
    I particularly appreciate the two methods you’ve outlined – using the Conditional Menus plugin and the manual code approach.
    You have certainly given me some ideas to enhance my own WordPress sites. Thanks again WPBeginner :)

  3. うまく動作しました! 上部に2つのメニューがあります。ヘッドライナーメニューとメインメニューです。コードを使用すると、ユーザーがログインしている場合、上記のメニューはログイン中のメニューに切り替わります。ヘッドライナーメニューが同じままであるようにコードを調整するにはどうすればよいですか?

  4. メニュー全体ではなく、特定のメニュー項目に対して行う方がはるかに簡単でしょう。メニュー項目が499個ある人はどうすればよいでしょうか?

    • メニュー項目が多すぎると、ユーザーがナビゲートするのが非常に困難になり、メニューリンクが訪問者にとって価値を提供しない場合、SEOの問題を引き起こす可能性があるため、それほど多くのメニュー項目はお勧めしません。

      管理者

  5. 100%。Sahifaテーマで設定したばかりで、驚くほどうまく機能します。

    この良い仕事を続けてください。

  6. これは非常に役立ちますが、ユーザー名とアバターを表示して、他のプロファイルメニュー項目をドロップダウンメニューとして機能させる方法はありますか?

  7. 表示されたパスはカスタムメニューを表示するだけで、うまくいきます。しかし、ユーザーの興味に基づいて特定のログインユーザーにコンテンツを表示したい場合はどうなりますか?これは、さまざまなディールサイトのように詳細であり、ログインして興味を保存すると、次の瞬間にはその特定のトピックのディールのみが表示されます。WordPressプラグインを使用してそれを可能にできますか?

  8. こんにちは、素晴らしい仕事に感謝します。複数のユーザーロールについて質問があります。

    メインメニューは2つあります。メニュー1とメニュー2です。

    すべてのユーザー(ログイン中または未ログイン)にメインメニューを表示したいのですが、ユーザーロールが「Alt」の場合は、メニュー1がメニュー2に置き換えられます。

    どうすればそれを実行できますか?

  9. @ERICLEE それを防ぐために子テーマを作成できます。ちょうどこのコードを追加したところで、同じことをする必要があります。

  10. サブスクライバープロファイルに、ホームページ以外でメニューを追加することは可能ですか?これらのメニューページはホームページには表示されず、各サブスクライバープロファイルにのみ表示されます。もし可能であれば、手順を教えてください。また、プラグインを使用する方法も教えてください。

  11. wpサイトの購読者のプロフィールにメニューを追加することは可能ですか?もし可能であれば、この作業のためにどのようなプラグインを使用すればよいか、誰か教えていただけますか?

  12. 多言語メンバーサイトで同じことを達成するにはどうすればよいですか?例えば、英語でログインしたユーザーとドイツ語でログインしたユーザーで異なるメニューを表示するにはどうすればよいですか?

  13. ログインメニューとログアウトメニューを追加しましたが、ログインとログアウトのページをどのように設定すればよいですか??

返信する

コメントいただきありがとうございます。すべてのコメントは、コメントポリシーに従ってモデレーションされ、メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で意味のある会話をしましょう。