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サポート
コードスニペットを追加する際に覚えておくべき重要な詳細です!
管理者
デニス・ムトミ
明確で実用的なガイドです!
WordPressでログインユーザーに異なるメニューを表示する方法についての包括的なガイドをありがとうございます。
特に、条件付きメニュープラグインを使用する方法と手動のコードアプローチという2つの方法を概説していただき、感謝しています。
あなたのガイドは、私のWordPressサイトを強化するためのアイデアを確かに与えてくれました。WPBeginnerさん、改めてありがとうございます
イゴイ・カヴァレラ
完璧です!
簡単な記事をありがとうございます。数時間節約できました。
WPBeginnerサポート
お時間を節約できたようで嬉しいです
管理者
アレックス
コードをありがとうございます – 期待通りに動作しました。感謝します
WPBeginnerサポート
ガイドがお役に立てて嬉しいです!
管理者
ポール K
素晴らしい!でも、テーマのfunction.phpはどこで見つけられますか?
WPBeginnerサポート
テーマのフォルダ内にあります。以下のページで詳細を確認できます。
https://www.wpbeginner.com/glossary/functions-php/
管理者
ポール K
OK、見つけました、ありがとう。しかし、追加のコードをどこに配置するのか分かりません。PHPには詳しくありませんが、最後に「」が見えます。
WPBeginnerサポート
コードスニペットを貼り付けるには、functions.phpにどこに貼り付けるか、および他のコードベースのチュートリアルを参照する場合にどこに貼り付けるかをカバーする以下のガイドを確認してください。
https://www.wpbeginner.com/beginners-guide/beginners-guide-to-pasting-snippets-from-the-web-into-wordpress/
管理者
クララ
うまく動作しました! 上部に2つのメニューがあります。ヘッドライナーメニューとメインメニューです。コードを使用すると、ユーザーがログインしている場合、上記のメニューはログイン中のメニューに切り替わります。ヘッドライナーメニューが同じままであるようにコードを調整するにはどうすればよいですか?
WPBeginnerサポート
ご希望の件については、以下の記事をご覧ください。
https://www.wpbeginner.com/plugins/how-to-add-conditional-logic-to-menus-in-wordpress/
管理者
セルジオ
ありがとうございます!
WPBeginnerサポート
どういたしまして
管理者
エコー
メニュー全体ではなく、特定のメニュー項目に対して行う方がはるかに簡単でしょう。メニュー項目が499個ある人はどうすればよいでしょうか?
WPBeginnerサポート
メニュー項目が多すぎると、ユーザーがナビゲートするのが非常に困難になり、メニューリンクが訪問者にとって価値を提供しない場合、SEOの問題を引き起こす可能性があるため、それほど多くのメニュー項目はお勧めしません。
管理者
エバウド・サントス
100%。Sahifaテーマで設定したばかりで、驚くほどうまく機能します。
この良い仕事を続けてください。
ジェイソン
ありがとうございます!!
Bk Millanzi
これは非常に役立ちますが、ユーザー名とアバターを表示して、他のプロファイルメニュー項目をドロップダウンメニューとして機能させる方法はありますか?
アマールナド
表示されたパスはカスタムメニューを表示するだけで、うまくいきます。しかし、ユーザーの興味に基づいて特定のログインユーザーにコンテンツを表示したい場合はどうなりますか?これは、さまざまなディールサイトのように詳細であり、ログインして興味を保存すると、次の瞬間にはその特定のトピックのディールのみが表示されます。WordPressプラグインを使用してそれを可能にできますか?
サム
こんにちは、素晴らしい仕事に感謝します。複数のユーザーロールについて質問があります。
メインメニューは2つあります。メニュー1とメニュー2です。
すべてのユーザー(ログイン中または未ログイン)にメインメニューを表示したいのですが、ユーザーロールが「Alt」の場合は、メニュー1がメニュー2に置き換えられます。
どうすればそれを実行できますか?
テンダイ・ムゴニ
動作しています、ありがとう
カーティス
@ERICLEE それを防ぐために子テーマを作成できます。ちょうどこのコードを追加したところで、同じことをする必要があります。
シャハザイブ・サルウェル
サブスクライバープロファイルに、ホームページ以外でメニューを追加することは可能ですか?これらのメニューページはホームページには表示されず、各サブスクライバープロファイルにのみ表示されます。もし可能であれば、手順を教えてください。また、プラグインを使用する方法も教えてください。
シャハザイブ・サルウェル
wpサイトの購読者のプロフィールにメニューを追加することは可能ですか?もし可能であれば、この作業のためにどのようなプラグインを使用すればよいか、誰か教えていただけますか?
ユダ
多言語メンバーサイトで同じことを達成するにはどうすればよいですか?例えば、英語でログインしたユーザーとドイツ語でログインしたユーザーで異なるメニューを表示するにはどうすればよいですか?
WPBeginnerサポート
こんにちは、Yudaさん。
もし多言語対応WordPressプラグインを使用している場合、これはプラグインによって処理されるはずです。基本的に、多言語メニューの翻訳を提供する必要があります。
管理者
ソロモン
ログインメニューとログアウトメニューを追加しましたが、ログインとログアウトのページをどのように設定すればよいですか??
ヤン=パウル・クライン
最初はプラグインのことを考えました。そう考えるのはやめなければなりません。
それからあなたの投稿を見て、納得しました。
これを投稿してくれてありがとう、とても助かりました。
フィル
本当にありがとうございました。完璧に機能しました。
アリエット
こんにちは、
これは完全に機能します!
しかし、フッターメニューも変更されてしまいます..フッターメニューをそのままにしておく方法はありますか?
タロン・アクフ
メニューが2つあります。1つは一般公開用、もう1つは従業員がログインしたときに表示させたいものです。従業員メニューは、従業員がログインしている場合にのみメインメニューに置き換わります。
現在、functions.phpファイルで使用しているのは次のとおりです。
// ロールをボディクラスとして設定
function add_role_to_body( $classes ) {
$user = wp_get_current_user();
$user_roles = $user->roles; foreach( $user_roles as $role ) { $classes[] = ‘role-‘ . $role; }
return $classes;
}
add_filter( ‘body_class’, ‘add_role_to_body’ );
***CSSに追加した内容は以下の通りです***
/* まず、「従業員」以外のユーザーにはメニュー項目を非表示にします */
#top-menu li.menu-for-employee { display: none; }
/* "従業員"ユーザーのメニュー項目を表示 */
.role-employee #top-menu li.menu-for-employee { display: initial; }
従業員としてログインすると、両方のメニューが表示されます。
事前に感謝します。
ワシム
うまくいきません。プライマリメニューも消えてしまい、コードを追加した後、デフォルトのメニューが表示されます。
Joe
皆さん、こんにちは。
素晴らしいチュートリアルですが、特定の画面サイズでレスポンシブメニューを置き換えるために同じアプローチを使用できるかどうか疑問に思っていましたか?
メニューが2つありますが、1つにしたいです。768pxでは、別のメニューに置き換えてレスポンシブメニューにしたいです。
ありがとう
ペット
ガイドは素晴らしいです。初めてWordPressサイトを構築しており、あなたのサイトが私を導くのに非常に役立っています。ありがとうございます。
ログインユーザー(「プロフィール編集」など)とログアウトユーザーで異なるメニューを表示したいと思っており、ここにたどり着きました。共有されたコードは私にはうまくいきます。これで2つのメニューが表示され、きれいに表示されています。しかし、コードの最後の部分、add filter文字列は、少し混乱していると思います。今、サイドバーウィジェットの下に別のメニューが表示されています。「ログイン済み」メニューです。シドニーテーマを使用しており、この不要なメニューを削除しようとしましたが、うまくいきませんでした。表示されないようにするにはどうすればよいですか?
WPBeginnerサポート
こんにちは、Petさん。
カスタムメニューがウィジェットとして追加されていないか、外観 » ウィジェット ページを確認してください。もしそこにある場合は、そのウィジェットを削除するだけです。
管理者
ペット
なんて天才!うまくいきました!素晴らしいヒントをありがとうございます!!
ジョムシー・ジョニー
私も同じ問題を抱えています。助けてください。しかし、ウィジェットはありません。ありがとうございます..!
アレックス・ハンマーシュミード
見事に機能します…
ありがとうございます。
ちなみに、このような短いチュートリアルが大好きです
ジョヴァンナ
こんにちは、助けていただけますか?また問題があります。メニューをすべての人に非表示にして、ベンダーのみが見れるようにするにはどうすればよいですか?どのような特定のコードを使用すればよいですか?
エリック・リー
functions.phpをこのように変更すると、次のWPバージョンにアップグレードしたときに消えてしまいませんか?
WPBeginnerサポート
はい、テーマを更新すると消去されます。これを防ぐには、サイト固有のプラグインを作成してください。
管理者
ラモーナ
これはBuddypressのインストールでも機能しますか?よろしくお願いします。
ニキル・チャウドハリ
この関数はセカンダリメニューも設定しますか?プライマリメニューのみを設定したいのですが。どうすればよいですか?
ニキル・チャウドハリ
この上記の関数はセカンダリメニューを設定していますが、ヘッダーメニューのみを設定したいのですが?
どうすればできますか?
アスファハ
こんにちは、
このソリューションをありがとうございます。適用したところ完璧に動作し、追加のプラグインをインストールせずに済みました。
シャファク
これは、ログインユーザーメニューに場所top-menuを追加し、メニューにloggedinを追加することで既存のメニューを置き換えるためのコードです。elseステートメントは不要です。
add_filter( ‘wp_nav_menu_args’, function ( $args )
{
if( is_user_logged_in() && $args[‘theme_location’] === ‘top-menu’ ) {
$args[‘menu’] = ‘loggedin’;
}
return $args;
});
アシュラフ・アリ
———————————————————–
function my_wp_nav_menu_args( $args = "" ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘logged-in’; } else { $args[‘menu’] = ‘logged-out’; } return $args; } add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ ); ———————————————————–
さて、どうすればこれで動作させられますか
—————————————————
———————————————————————————————————————-
アドバイスをお願いします
イクバル・マフムド
ログアウトしていないユーザーから単一のメニューでページを非表示にしたい場合は、どうすればよいですか?
カスパー
ページをロックして、ログアウトしたユーザーから非表示にすることができます。これを非常に簡単に行えるプラグインがいくつかあります。Users Ultraが思い浮かびます。
ゼブ
すべて完璧に機能しました。
しかし、セカンダリナビゲーションメニューセクションにプライマリメニューが繰り返し表示される問題がまだ残っており、削除できません(セカンダリメニューは設定していません)。
Vince
全く同じ問題が発生しています。セカンダリメニューの場所が突然反映され、私もセカンダリメニューを設定していません。:/ どうすればよいかアドバイスをお願いします。
事前に感謝します。
チランジーヴィ・ヴィノッドクマール
聞いてください!!!
ほとんどの人がテーマを使用しています。
まず、テーマのfunctions.phpに移動します。
キーワードとして「navigation」で検索してください。
Shopkeeperテーマの場合..
================================================================== register_nav_menus( array( 'top-bar-navigation' => __( 'Top Bar Navigation', 'shopkeeper' ), 'main-navigation' => __( 'Main Navigation', 'shopkeeper' ), 'footer-navigation' => __( 'Footer Navigation', 'shopkeeper' ), ===================================================================
このように表示されます。プライマリのものを選択してください。私の場合は、「Top Bar Navigation」なので、「top-bar-navigation」を使用しました。
以下のコードを使用しましたが、見事に機能しました!!!
これは作者への感謝の気持ちです。
こんにちは!!
アン・ノコウスキー
WPで私にうまくいった方法を以下に示します。これを、ログインしているBuddypressユーザー専用のプライマリメニューを作成するために使用しました。フッターメニューやソーシャルメディアメニューには影響しませんので、ログインしているかどうかにかかわらず、すべての訪問者が同じセカンダリメニューを見ることができます。これは、上記のすべてのコメントに基づいています(Fransiskaさんに感謝!)。
子テーマのfunctions.phpファイルに以下を追加しました:
// メンバーがログインしている場合のみメインメニューを変更する
function my_wp_nav_menu_args( $args = "" ) { if ($args['theme_location'] == 'primary') { if( is_user_logged_in()) { $args['menu'] = 'logged-in'; }else{ $args['menu'] = 'logged-out'; } } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
オリバー
何が起こったのかコメントが消えた理由は分かりませんが、-> ” <– こちらは正しいです!
フィデル・トーロ
ありがとうございます!! とても助かりました
マティアス・キャンベル
こんにちは。
WordPressのエディタで、テーマのfunctions.phpに(おそらく間違って)このコードを追加したところ、常に500サーバーエラーが発生するようになりました。コードを削除しても改善しません。
これ以前にサイト固有のプラグインを作成しようとしましたが、うまくいきませんでした。スニペットには開始と終了の括弧が必要ですか?
もしそうなら、どうすればよいですか?
私のホストは今助けてくれません。彼らは1時間あたり50ユーロでプログラマーに助けを求めるように求めています。助けてください。緊急です。
まだWordPressにログインしていますが、何をクリックしても、この特定のエラーで500エラーが発生します。
PHP Parse error: syntax error, unexpected ‘}’ in line 1194.
これは、functions.phpファイルのすべてのテキストの後にスニペットを貼り付けたためです。
その後、エディターとFTP経由で修正できるかスニペットを削除しましたが、それでもエラーが発生します。
ご返信をお待ちしております。
敬具
WPBeginnerサポート
コードをどこに追加するかによります。その前に閉じPHPタグがある場合は、php開始タグ(例:<?php)を追加する必要があります。
このコードがfunctionsファイル内の最後のものの場合、閉じタグを追加する必要はありません。
管理者
ヒューバート
複数のメニューロケーションがあり、各ロケーションに異なるメニューを適用したい場合は、以下のコードを使用できます。
function my_wp_nav_menu_args( $args = ” ) {
// プライマリメニューの場所
if( ‘primary-main’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘Primary-Logged-In’; } else { $args[‘menu’] = ‘Primary-Logged-Out’; }
return $args; }
// セカンダリメニューの場所
if( ‘secondary-menu’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘Secondary-Logged-In’; } else { $args[‘menu’] = ‘Secondary-Logged-Out’; }
return $args;
}
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
ハジ
これは機能しません。2つ以上のメニューがある場合の正しいコードを知っている人はいますか?
ラヴィカント
完璧な兄弟。うまくいきました…素晴らしい仕事
レオポルド
これはほとんど簡単すぎました!
簡単な記事を本当にありがとうございました。
こうすれば、プラグインをインストールする必要がありません。
ガウラン
IF MENU プラグインを使用することをお勧めします。https://wordpress.org/plugins/if-menu/
このように2つの別々のメニューを作成すると、メニューの作成/更新を2回行う必要があります。
クリス
こんにちは、ゴーラングさん。
プラグインを使用する方が、functions.php ファイルをコーディングするよりも優れていると感じる理由を知りたいです。以前、WordPress サイトで実際に使用されているプラグインの数に注意するように言われたことがあり、上記のコードは、テーマが更新されるたびに監視する必要があることを除けば、十分にシンプルに見えます。
ありがとう、
ルブ
素晴らしい、それを特定のロールを持つログインユーザーにメニューを表示するためにどのように使用できますか?
キット・ジョンソン
これは非常にシンプルかつきれいに機能しました。こんなに簡単だとは思っていませんでした。ありがとうございます!
ジェイソン・シソン
これは素晴らしいです。試しました。動作します。しかし、ロールによってリダイレクトさせたいのですが、それは簡単ですか、それとももっと難しいですか?
ライアン・R・ベイン
ありがとう。初めてメニュー関数を扱っています。
WTGポータルマネージャープラグインを作成しています。これにより、ポータルを非常に迅速に定義できるようになります。各ポータルには独自のメニューがあります。このプラグインは、ポータルとメニューの関係をより明確にし、その他のユニークなオプションを提供します。
veer2412
ユーザーごとに異なる投稿を表示するにはどうすればよいですか?
veer2412
ヘルプありがとうございます。でも、サイトでユーザーごとに異なる投稿を表示したい場合はどうすればいいですか?コーディングで可能ですか?