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

WordPressでログインユーザーに異なるメニューを表示する理由
訪問者とそのアクティビティに基づいて、WordPressウェブサイトのさまざまな領域を変更すると、各ユーザーにとってサイトがパーソナライズされたものになります。
このパーソナライズされたコンテンツは、WordPressサイトでのユーザーエクスペリエンスを向上させるのに役立ちます。
ユーザー登録やログインが不要なウェブサイトを運営している場合、ウェブサイト全体で同じナビゲーションメニューを使用できるでしょう。しかし、ログインユーザーにカスタムメニューを表示することで、他のウェブサイトは大きなメリットを得られる可能性があります。
例えば、オンラインストア、オンライン学習プラットフォーム、またはWordPress会員サイトコミュニティのようなウェブサイトは、パーソナライズされたナビゲーションメニューから大きなメリットを得ることができます。
ログインユーザー向けのパーソナライズされたナビゲーションメニューは、登録したものを簡単に見つけるのに役立ちます。
例えば、オンラインストアのユーザーはアカウントを管理したり、有料コミュニティのメンバーはサブスクリプションを簡単に更新したり、購入した限定のオンラインコースを閲覧したりできます。

デフォルトでは、WordPressでは必要なだけ多くのナビゲーションメニューを作成できます。ただし、WordPressテーマの特定の場所に表示できるメニューは1つだけです。
ログインユーザー向けのメニューを設定する前に、まず2つの別々のナビゲーションメニューを作成する必要があります。1つはログインユーザー用、もう1つはログアウトユーザー用です。始めましょう。
⚠️ ちょっとした注意点です! ここで紹介する方法は、WordPress のクラシックテーマを使用しているユーザー向けに設計されています。WordPress 5.8 以降のフルサイト編集(FSE)機能を使用するブロックテーマを使用している場合、この方法は機能しない可能性があります。
WordPressでログインユーザーと非ログインユーザー向けのメニューを作成する
ユーザーの2つのタイプごとに個別のメニューを作成するには、WordPressダッシュボードの外観 » メニューページに移動します。
ウェブサイトで全ユーザーが使用しているナビゲーションメニューが既にある場合は、それをデフォルトメニューとして使用できます。

その後、「新しいメニューを作成」リンクをクリックすると、ログインユーザー用の新しいカスタムメニューを作成できます。
ここで、登録済みまたはログイン中のユーザーに表示したいメニュー項目を追加してください。たとえば、メニューにログアウトリンクを追加することができます。
画面の左側には、ウェブサイトのページリストが表示されます。メニューに追加したいページにチェックボックスを入れ、「メニューに追加」ボタンをクリックするだけです。

画面右側のメニュー項目をドラッグアンドドロップして並べ替えることもできます。
ページをさらに下にスクロールすると、メニューを表示する場所を選択できます。ただし、このメニューに場所を割り当てる必要はありません。記事の後半でそれを行います。
変更を保存するには、「メニューを保存」ボタンをクリックすることを忘れないでください。
メニューの作成に関する詳細については、WordPressナビゲーションメニューの初心者ガイドをご覧ください。
これで、ログインユーザーに異なるメニューを表示する準備が整いました。このガイドで説明するすべての方法の概要を以下に示します。
- 方法1.プラグインを使用してWordPressでログインユーザーに異なるメニューを表示する
- 方法2. コードを使用してWordPressでログインメニューを手動で選択する
- ボーナスチップ:WordPressメニューでの条件付きロジックのさらなる使用例
- よくある質問:WordPressでログインユーザーに異なるメニューを表示する方法
- 追加リソース:WordPressのユーザーロールとサイトナビゲーション
よりパーソナライズされた体験の準備はできましたか?さあ始めましょう!🌟
方法1.プラグインを使用してWordPressでログインユーザーに異なるメニューを表示する
ログインユーザーに異なるメニューを表示する最も簡単な方法は、 Conditional Menus プラグインを使用することです。まず、それをインストールして有効化しましょう。
詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。
有効化したら、WordPressダッシュボードから外観 » メニューに移動する必要があります。次に、「メニューの管理」タブに切り替えます。
ここから、WordPressテーマで定義されている利用可能なメニューの場所と、現在表示されているメニューのリストが表示されます。
例えば、現在の「プライマリメニュー」の場所には「メインメニュー」が表示されています。

次に、特定の条件が一致した場合に異なるメニューを表示するようにプラグインに指示する必要があります。
これを行うには、「+ 条件付きメニュー」リンクをクリックします。次に、ドロップダウンメニューからログインユーザーに表示したいナビゲーションメニューを選択できます。

次に、「+ 条件」リンクをクリックします。
これにより、選択できる条件のリストが表示されるポップアップが表示されます。

「ユーザーログイン中」オプションの横にあるチェックボックスをオンにしてから、「保存」ボタンをクリックするだけです。
これで、ウェブサイトにアクセスして、ログイン中のユーザーメニューが機能していることを確認できます。WordPress管理画面からログアウトして、他のすべてのユーザーに表示されるナビゲーションメニューを表示することもできます。

方法2. コードを使用してWordPressでログインメニューを手動で選択する
この方法では、WordPressウェブサイトにコードを追加する必要があります。以前にこれを実行したことがない場合は、WordPressにWeb上のスニペットをコピーして貼り付けるための初心者ガイドに関するガイドをご覧ください。
一般的に、ブログではテーマの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でもフォローできます。


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