WordPressサイトの訪問者がログインしているのに、あちこちに「ログイン」や「登録」ボタンが表示されていて混乱することがあるのに気づいたことはありませんか?あるいは、メンバーがアカウントダッシュボードを見つけにくく、メニューに埋もれているのかもしれません。
これらの小さなフラストレーションは、最も忠実なユーザーでさえ、自分のウェブサイトで部外者のように感じさせる可能性があります。
そして、パーソナライズされたメニューはすべてを変えることができます。ログインユーザーに「マイアカウント」や「ログアウト」などのオプションを表示することで、一般的なリンクよりも、サイトがより歓迎され、プロフェッショナルに感じられます。
良いニュースは?WordPressで動的なメニューを作成するのは、思っているよりも簡単です。
このガイドでは、スキルレベルに関係なく、ログインユーザーに異なるメニューを表示する簡単な2つの方法を紹介します。💡

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のテキストエディタが表示されます。
次のステップは、コードスニペットにタイトルを追加し、「コードタイプ」ドロップダウンメニューから「HTMLスニペット」を選択することです。

完了したら、次のコードを「コードプレビュー」フィールドにコピー&ペーストするだけです。
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エディタでは、このようになります。

43と35を、先ほど作成したナビゲーションメニューのIDに置き換えてください。
ナビゲーションメニューのIDは、「メニュー」ページで選択すると見つけることができます。メニューID番号はブラウザのアドレスバーに表示されます。

すべての詳細が正しいことを確認したら、青い「スニペットを保存」ボタンをクリックしてください。
それで終わりです!
ボーナスチップ:WordPressメニューでの条件付きロジックのさらなる使用例
ナビゲーションに関しては、条件付きロジックは、ログインユーザーに異なるメニューを表示する以上のことができます。以下にいくつかの簡単な例を示します。
- ユーザーロールに基づいて異なるメニューを表示する:管理者は共同作業者とは異なるメニューを表示できます。たとえば、管理者にはサイト設定やユーザー管理などの管理者専用オプションを表示し、共同作業者やその他のユーザーロールには一般的なナビゲーションリンクを提供します。
- 異なるページに異なるメニューを表示する:ブログページや商品ページに独自のメニューを表示したいですか?条件付きロジックを使用すると、それぞれに特定のメニューを作成でき、ナビゲーションをコンテンツに合わせて調整できます。
- ランディングページでナビゲーションを非表示にする:ランディングページは、邪魔がない方が最適です。条件付きロジックを使用してナビゲーションメニューを非表示にし、行動喚起(サインアップフォームや商品オファーなど)に注意を集中させます。
詳細については、WordPressでメニューに条件付きロジックを追加する方法に関するガイドを参照してください。
よくある質問:WordPressでログインユーザーに異なるメニューを表示する方法
WordPressでユーザーごとに異なるメニューを表示する方法について、まだご質問がありますか?以下に役立つ簡単な回答をいくつかご紹介します。
ユーザーロールに基づいて異なるメニューを表示できますか?
もちろんです。管理者、編集者、またはサイト上のその他のカスタムユーザーロールに対して、独自のメニューを表示できます。Conditional Menusプラグインは、これを設定するための簡単なオプションを提供しており、チームメンバーのナビゲーションを調整するのに最適です。
プラグインを使用するのと、コードを手動で追加するのとでは、どちらが良いですか?
ほとんどのユーザーには、Conditional Menus や WPCode のようなプラグインの使用をお勧めします。これらのツールを使えば、テーマファイルを触ることなく、異なるメニューを簡単に表示できます。
WPCodeは、コードを使用する柔軟性を好む場合に特に役立ちます。カスタムPHPスニペットを安全に追加し、WordPressダッシュボードから管理できます。functions.phpを直接編集する必要はありません。
手動コーディングは開発者にとって依然として良い選択肢ですが、それ以外の人にとっては、プラグインの方が安全で初心者フレンドリーな選択肢です。
特定のページでナビゲーションメニューを非表示にできますか?
はい、同じ条件付きロジックを使用して、特定のページでナビゲーションメニューを非表示にすることができます。これは、ランディングページでは一般的な戦略であり、邪魔なものを排除して訪問者を行動喚起に集中させます。
追加リソース:WordPressのユーザーロールとサイトナビゲーション
この記事が、WordPressでログインユーザーに異なるナビゲーションメニューを簡単に表示する方法を学ぶのに役立ったことを願っています。次に、次のガイドも参照してください。
- WordPressサイトでユーザー登録を許可する方法
- WordPressでユーザーが友人を登録に招待できるようにする方法
- WordPressで新規ユーザー登録をモデレートする方法
- WordPressが「ログイン情報を記憶する」機能を忘れないようにする方法
- WordPressで各ユーザーをカスタムウェルカムメッセージで迎える方法
- WordPressフォームをログインユーザーのみに制限する方法
- WordPressナビゲーションメニューのスタイリング方法
- ベストWordPressメンバーシッププラグイン
この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterやFacebookでも私たちを見つけることができます。

ステファニー・ギブス
このコードは、phpコードタイプを選択しないと実行されないことがわかりました。HTMLからPHPに変更したところ、素晴らしかったです!
WPBeginnerサポート
コードスニペットを追加する際に覚えておくべき重要な詳細です!
管理者
デニス・ムトミ
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
イゴイ・カヴァレラ
完璧です!
簡単な記事をありがとうございます。数時間節約できました。
WPBeginnerサポート
Glad we could help save you that time
管理者
アレックス
Thanks for the code – works as it should, appreciated
WPBeginnerサポート
ガイドがお役に立てて嬉しいです!
管理者
ポール K
素晴らしい!でも、テーマのfunction.phpはどこで見つけられますか?
WPBeginnerサポート
テーマのフォルダ内にあります。以下のページで詳細を確認できます。
https://014.leahstevensyj.workers.dev/glossary/functions-php/
管理者
ポール K
OK、見つけました、ありがとう。しかし、追加のコードをどこに配置するのか分かりません。PHPには詳しくありませんが、最後に「」が見えます。
WPBeginnerサポート
コードスニペットを貼り付けるには、functions.phpにどこに貼り付けるか、および他のコードベースのチュートリアルを参照する場合にどこに貼り付けるかをカバーする以下のガイドを確認してください。
https://014.leahstevensyj.workers.dev/beginners-guide/beginners-guide-to-pasting-snippets-from-the-web-into-wordpress/
管理者
クララ
うまく動作しました! 上部に2つのメニューがあります。ヘッドライナーメニューとメインメニューです。コードを使用すると、ユーザーがログインしている場合、上記のメニューはログイン中のメニューに切り替わります。ヘッドライナーメニューが同じままであるようにコードを調整するにはどうすればよいですか?
WPBeginnerサポート
ご希望の件については、以下の記事をご覧ください。
https://014.leahstevensyj.workers.dev/plugins/how-to-add-conditional-logic-to-menus-in-wordpress/
管理者
セルジオ
ありがとうございます!
WPBeginnerサポート
You’re welcome
管理者
エコー
メニュー全体ではなく、特定のメニュー項目に対して行う方がはるかに簡単でしょう。メニュー項目が499個ある人はどうすればよいでしょうか?
WPBeginnerサポート
メニュー項目が多すぎると、ユーザーがナビゲートするのが非常に困難になり、メニューリンクが訪問者にとって価値を提供しない場合、SEOの問題を引き起こす可能性があるため、それほど多くのメニュー項目はお勧めしません。
管理者
エバウド・サントス
100%。Sahifaテーマで設定したばかりで、驚くほどうまく機能します。
この良い仕事を続けてください。
ジェイソン
Thank you!!
Bk Millanzi
これは非常に役立ちますが、ユーザー名とアバターを表示して、他のプロファイルメニュー項目をドロップダウンメニューとして機能させる方法はありますか?
アマールナド
表示されたパスはカスタムメニューを表示するだけで、うまくいきます。しかし、ユーザーの興味に基づいて特定のログインユーザーにコンテンツを表示したい場合はどうなりますか?これは、さまざまなディールサイトのように詳細であり、ログインして興味を保存すると、次の瞬間にはその特定のトピックのディールのみが表示されます。WordPressプラグインを使用してそれを可能にできますか?
サム
こんにちは、素晴らしい仕事に感謝します。複数のユーザーロールについて質問があります。
メインメニューは2つあります。メニュー1とメニュー2です。
すべてのユーザー(ログイン中または未ログイン)にメインメニューを表示したいのですが、ユーザーロールが「Alt」の場合は、メニュー1がメニュー2に置き換えられます。
どうすればそれを実行できますか?
テンダイ・ムゴニ
動作しています、ありがとう
カーティス
@ERICLEE それを防ぐために子テーマを作成できます。ちょうどこのコードを追加したところで、同じことをする必要があります。
シャハザイブ・サルウェル
サブスクライバープロファイルに、ホームページ以外でメニューを追加することは可能ですか?これらのメニューページはホームページには表示されず、各サブスクライバープロファイルにのみ表示されます。もし可能であれば、手順を教えてください。また、プラグインを使用する方法も教えてください。
シャハザイブ・サルウェル
wpサイトの購読者のプロフィールにメニューを追加することは可能ですか?もし可能であれば、この作業のためにどのようなプラグインを使用すればよいか、誰か教えていただけますか?
ユダ
多言語メンバーサイトで同じことを達成するにはどうすればよいですか?例えば、英語でログインしたユーザーとドイツ語でログインしたユーザーで異なるメニューを表示するにはどうすればよいですか?
WPBeginnerサポート
こんにちは、Yudaさん。
もし多言語対応WordPressプラグインを使用している場合、これはプラグインによって処理されるはずです。基本的に、多言語メニューの翻訳を提供する必要があります。
管理者
ソロモン
ログインメニューとログアウトメニューを追加しましたが、ログインとログアウトのページをどのように設定すればよいですか??