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でもフォローできます。


Jan-Paul Kleijn
最初はプラグインのことを考えました。そう考えるのはやめなければなりません。
それからあなたの投稿を見て、納得しました。
これを投稿してくれてありがとう、とても助かりました。
フィル
本当にありがとうございました。完璧に機能しました。
Ariet
Hello,
これは完全に機能します!
しかし、フッターメニューも変更されてしまいます..フッターメニューをそのままにしておく方法はありますか?
Tarron Acuff
メニューが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; }
従業員としてログインすると、両方のメニューが表示されます。
事前に感謝します。
Wasim
うまくいきません。プライマリメニューも消えてしまい、コードを追加した後、デフォルトのメニューが表示されます。
Joe
皆さん、こんにちは。
素晴らしいチュートリアルですが、特定の画面サイズでレスポンシブメニューを置き換えるために同じアプローチを使用できるかどうか疑問に思っていましたか?
メニューが2つありますが、1つにしたいです。768pxでは、別のメニューに置き換えてレスポンシブメニューにしたいです。
ありがとう
Pet
ガイドは素晴らしいです。初めてWordPressサイトを構築しており、あなたのサイトが私を導くのに非常に役立っています。ありがとうございます。
ログインユーザー(「プロフィール編集」など)とログアウトユーザーで異なるメニューを表示したいと思っており、ここにたどり着きました。共有されたコードは私にはうまくいきます。これで2つのメニューが表示され、きれいに表示されています。しかし、コードの最後の部分、add filter文字列は、少し混乱していると思います。今、サイドバーウィジェットの下に別のメニューが表示されています。「ログイン済み」メニューです。シドニーテーマを使用しており、この不要なメニューを削除しようとしましたが、うまくいきませんでした。表示されないようにするにはどうすればよいですか?
WPBeginnerサポート
こんにちは、Petさん。
カスタムメニューがウィジェットとして追加されていないか、外観 » ウィジェット ページを確認してください。もしそこにある場合は、そのウィジェットを削除するだけです。
管理者
Pet
What genius! It worked! Thanks for the wonderful tip!!
Jomcy Johny
私も同じ問題を抱えています。助けてください。しかし、ウィジェットはありません。ありがとうございます..!
Alex Hammerschmied
Works like a charm…
Thanks for that.
Btw i love theses short tutorials
giovanna
こんにちは、助けていただけますか?また問題があります。メニューをすべての人に非表示にして、ベンダーのみが見れるようにするにはどうすればよいですか?どのような特定のコードを使用すればよいですか?
ericlee
functions.phpをこのように変更すると、次のWPバージョンにアップグレードしたときに消えてしまいませんか?
WPBeginnerサポート
はい、テーマを更新すると消えてしまいます。これを防ぐには、サイト固有のプラグインを作成することができます。
管理者
Ramona
これはBuddypressのインストールでも機能しますか?よろしくお願いします。
Nikhil Chaudhari
この関数はセカンダリメニューも設定しますか?プライマリメニューのみを設定したいのですが。どうすればよいですか?
Nikhil Chaudhari
この上記の関数はセカンダリメニューを設定していますが、ヘッダーメニューのみを設定したいのですが?
どうすればできますか?
Asfaha
こんにちは、
このソリューションをありがとうございます。適用したところ完璧に動作し、追加のプラグインをインストールせずに済みました。
Shafaq
これは、ログインユーザーメニューに場所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’ ); ———————————————————–
さて、どうすればこれで動作させられますか
—————————————————
———————————————————————————————————————-
アドバイスをお願いします
Iqbal Mahmud
ログアウトしていないユーザーから単一のメニューでページを非表示にしたい場合は、どうすればよいですか?
Kasper
ページをロックして、ログアウトしたユーザーから非表示にすることができます。これを非常に簡単に行えるプラグインがいくつかあります。Users Ultraが思い浮かびます。
ゼブ
すべて完璧に機能しました。
しかし、セカンダリナビゲーションメニューセクションにプライマリメニューが繰り返し表示される問題がまだ残っており、削除できません(セカンダリメニューは設定していません)。
Vince
全く同じ問題が発生しています。セカンダリメニューの場所が突然反映され、私もセカンダリメニューを設定していません。:/ どうすればよいかアドバイスをお願いします。
事前に感謝します。
Chiranjeevi Vinodkumar
聞いてください!!!
ほとんどの人がテーマを使用しています。
まず、テーマの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」を使用しました。
以下のコードを使用しましたが、見事に機能しました!!!
これは作者への感謝の気持ちです。
こんにちは!!
Ann Novakowski
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ファイル内の最後のものの場合、閉じタグを追加する必要はありません。
管理者
Hubert
複数のメニューロケーションがあり、各ロケーションに異なるメニューを適用したい場合は、以下のコードを使用できます。
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’ );
Haji
これは機能しません。2つ以上のメニューがある場合の正しいコードを知っている人はいますか?
Ravikant
完璧な兄弟。うまくいきました…素晴らしい仕事
Leopold
これはほとんど簡単すぎました!
簡単な記事を本当にありがとうございました。
こうすれば、プラグインをインストールする必要がありません。
ガウラン
IF MENUプラグインを使用する方が良いと思います。https://wordpress.org/plugins/if-menu/
このように2つの別々のメニューを作成すると、メニューの作成/更新を2回行う必要があります。
Chris
こんにちは、ゴーラングさん。
プラグインを使用する方が、functions.php ファイルをコーディングするよりも優れていると感じる理由を知りたいです。以前、WordPress サイトで実際に使用されているプラグインの数に注意するように言われたことがあり、上記のコードは、テーマが更新されるたびに監視する必要があることを除けば、十分にシンプルに見えます。
ありがとう、
Rub
素晴らしい、それを特定のロールを持つログインユーザーにメニューを表示するためにどのように使用できますか?
キット・ジョンソン
これは非常にシンプルかつきれいに機能しました。こんなに簡単だとは思っていませんでした。ありがとうございます!
Jason Sisson
これは素晴らしいです。試しました。動作します。しかし、ロールによってリダイレクトさせたいのですが、それは簡単ですか、それとももっと難しいですか?
Ryan R. Bayne
ありがとう。初めてメニュー関数を扱っています。
WTGポータルマネージャープラグインを作成しています。これにより、ポータルを非常に迅速に定義できるようになります。各ポータルには独自のメニューがあります。このプラグインは、ポータルとメニューの関係をより明確にし、その他のユニークなオプションを提供します。
veer2412
ユーザーごとに異なる投稿を表示するにはどうすればよいですか?
veer2412
ヘルプありがとうございます。でも、サイトでユーザーごとに異なる投稿を表示したい場合はどうすればいいですか?コーディングで可能ですか?
WPBeginnerスタッフ
外観 > メニュー でメニューの場所を選択する必要があります。サイトにはメニューを追加できる場所が2つあるようです。したがって、2つの異なるメニューを作成し、それぞれに場所を割り当てる必要があります。
Heather Gile
「プライマリ」と「トップ」の区別がある場合、このコードの改訂版はどうなりますか?
$args[‘primary-menu’] = ‘logged-in’;
$args[‘top-menu’] = ‘logged-in’;
else
$args[‘primary-menu’] = ‘logged-out’;
$args[‘top-menu’] = ‘logged-out’;
?
カイル
Wordpressでは、「トップヘッダー」の場所にメニューを2つ配置できません。提供されたコードは機能しますが、私のすべてのメニューがログイン中またはログアウト中の状態に変更され、通常のナビゲーションメニューが表示されなくなりました。
b2995
トップメニューとサイトメニュー(ロゴの下)があります。トップメニューだけを変更するには、コードをどのように変更すればよいですか?現在、すべてのメニューが変更されてしまいます。
Harry Slyman
You saved my day! thank you
Rob
OMG、あまりにもシンプルで笑ってしまいました…ありがとうございます!
Melih
分かりやすく、とても助かります。
Rohit Gahlot
Working ..
Thanks a lot
セス
これ、ありがとうございます。
ホームページでは、サブメニュー(ドロップダウンメニュー)を持つメニュー名がドロップダウンを表示しません。ホームページ以外のページに移動すると、この問題は発生せず、すべてのメニュー項目が表示されます。
これは、ログイン中およびログアウト中の両方のアイテムのホームページで発生しています。これを修正する方法はありますか?よろしくお願いします。
http://www.viridianmgt.com/wordpress
WPBeginnerサポート
テーマの問題のようです。テーマのサポートにお問い合わせください。
管理者
Wouter Bredenbeek
$args[‘menu’] = ‘logged-in’; を $args[‘secondary-menu’] = ‘logged-in’; に変更することで、特定のメニューの変更のみが可能になります。これでうまくいくはずです!
DANIEL
そのコードは機能しません。私は「primary-menu」と「secondary-menu」を登録し、提供された関数をargsの変更で試しましたが、メニューは変更されません。
このコードで修正しました。
function my_wp_nav_menu_args( $args = "" ) { if ($args[‘theme_location’] == ‘secondary-menu’) { if( is_user_logged_in()) { $args[‘menu’] = ‘logged-in’; }else{ $args[‘menu’] = ‘logged-out’; } }else{ $args[‘menu’] = ‘Principal’; } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
注意: ‘ Principal はプライマリ静的メニューの名前です。
Rory PQ
もう少しです。フッターとメインメニューの両方が変更されています。フッターメニューだけを変更しようとしています。このコードの多くのバリエーションを試しましたが、うまくいきません。何か解決策のアイデアはありますか?
Firebugでテーマを検査したところ、フッターは「id=footer-nav」と表示されました。「secondary-menu」の代わりにこの名前を使用すべきですか?
ありがとうございます
lemonthirst
やったー!ついに見つけたよ。こんな簡単な機能がこんなにも私の仕事を楽にしてくれるなんて、思いもよらなかった。
みんな、ありがとう!
グラント
functions.php ファイルにコードを入力しようとすると、次のエラーが発生します。
Parse error: syntax error, unexpected ’03’ (T_LNUMBER) in /home/grantkessler/public_html/wp-content/themes/GameNews/functions.php on line 201
Stevie Allison
完璧です、まさに探していたものです。今から試してみます。ありがとうございます
Stevie Allison
完璧に動作します。ありがとうございます
Alex
コードを共有していただきありがとうございますが、これは本当にすべてのエリアにこのメニューを追加しますか?特定のメニューにのみ表示する方法はありますか?
shanewaj rahman
ありがとうございます。
とても簡単にしていただきました。
zaman
サイト固有のプラグインを作成し、メニューは正常に動作していますが、フッターメニューも変更されてしまいました。選択したものが表示されず、ログイン中またはログアウト中のものが表示されます。
WPBeginnerサポート
Zaman WordPressメニューには場所が割り当てられています。フッターメニューの場所には別のメニューを使用していることを確認してください。
管理者
グラント
コードを入力しようとすると、サイトが完全に壊れてしまい、次のエラーメッセージが表示されます。
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’ );
Warning: Cannot modify header information – headers already sent by (output started at /homepages/5/d156331781/htdocs/reviewthegame/wp-content/themes/Made-Theme/made/functions.php:12) in /homepages/5/d156331781/htdocs/reviewthegame/wp-includes/pluggable.php on line 899
ジョセフ
特定のメニューにのみ適用する方法はありますか?
次のように試しましたが、うまくいきません。
if( $args->theme_location == ‘primary-menu’ ) {
//ここにコード
}
何か良い方法はありますか?
shanewaj rahman
これは、2つのメニューの問題を克服するために私が行ったことです。
その機能を削除し、メニューを呼び出していたheader.phpにこのコードを挿入しました。
false,
‘menu_id’ => ‘nav’,
‘menu’ => ‘登録済み’,
‘items_wrap’ => ‘%3$s’)
);
}
else
{
wp_nav_menu( array(‘container’ => false,
‘theme_location’ => ‘primary’,
‘menu_id’ => ‘nav’,
‘items_wrap’ => ‘%3$s’,
) );
}?>
Fransiska
使用
if ($args[‘theme_location’] == ‘primary’)
代わりにすると、うまくいきます
Gerald Tyler
Fransiskaさん、提案をさらに詳しく説明していただけますか?サイドバーにいくつかのサブメニューを配置していますが、このページのソリューションでは、それらの短いメニューがすべて、私のさまざまなカスタムメニューではなく、プライマリメニューの名前すべてを持つフルメニューになってしまいます。あなたの提案は、このトリックをプライマリメニューの位置にのみ適用でき、サイドバーには適用できないということでしょうか?意味は通じますか?完全なコードを提供していただけますか?どのように組み合わせるか推測しても、うまくいっていません。
joseph
2013年10月25日 午前1時16分
特定のメニューにのみ適用する方法はありますか?
次のように試しましたが、うまくいきません。
if( $args->theme_location == ‘primary-menu’ ) {
//ここにコード
}
何か良い方法はありますか?
Fransiska
2014年1月31日 午前2時53分
使用
if ($args[‘theme_location’] == ‘primary’)
代わりにすると、うまくいきます
Jamie Mannion
素晴らしいヒントです。サイト開発のちょうど良いタイミングで役立ちました。
うまく機能しました!これを拡張して、ユーザーメタごとに異なるメニューを表示しようと思います。
シェアしてくれてありがとう!
karen
こんにちは、ありがとうございます、とても参考になりました。 ただ、コードをどこに挿入すればいいのかまだよくわかりません。
(メニューを作成した後、このコードをテーマのfunctions.phpファイルまたはサイト固有のプラグインに追加してください) – functions.phpファイルはどこにありますか?
よろしくお願いします
WPBeginnerサポート
外観 » エディター に移動すると、右側のファイルリストに functions.php ファイルが表示されます。ただし、そこに functions.php ファイルが表示されない場合は、テーマフレームワークまたは子テーマを使用していることになります。その場合は、サイト固有のプラグインを作成し、そのプラグイン内にこのコードを追加する必要があります。サイト固有のプラグインに関するガイドをご覧ください。
管理者
Cathy Earle
素晴らしいヒントです。今後のデザインで使用するのが楽しみです。