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にWeb上のスニペットをコピーして貼り付けるための初心者ガイドに関するガイドをご覧ください。

一般的に、ブログではテーマの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. 最初はプラグインのことを考えました。そう考えるのはやめなければなりません。
    それからあなたの投稿を見て、納得しました。
    これを投稿してくれてありがとう、とても助かりました。

  2. Hello,

    これは完全に機能します!
    しかし、フッターメニューも変更されてしまいます..フッターメニューをそのままにしておく方法はありますか?

  3. メニューが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; }

    従業員としてログインすると、両方のメニューが表示されます。

    事前に感謝します。

  4. うまくいきません。プライマリメニューも消えてしまい、コードを追加した後、デフォルトのメニューが表示されます。

  5. 皆さん、こんにちは。

    素晴らしいチュートリアルですが、特定の画面サイズでレスポンシブメニューを置き換えるために同じアプローチを使用できるかどうか疑問に思っていましたか?

    メニューが2つありますが、1つにしたいです。768pxでは、別のメニューに置き換えてレスポンシブメニューにしたいです。

    ありがとう

  6. ガイドは素晴らしいです。初めてWordPressサイトを構築しており、あなたのサイトが私を導くのに非常に役立っています。ありがとうございます。

    ログインユーザー(「プロフィール編集」など)とログアウトユーザーで異なるメニューを表示したいと思っており、ここにたどり着きました。共有されたコードは私にはうまくいきます。これで2つのメニューが表示され、きれいに表示されています。しかし、コードの最後の部分、add filter文字列は、少し混乱していると思います。今、サイドバーウィジェットの下に別のメニューが表示されています。「ログイン済み」メニューです。シドニーテーマを使用しており、この不要なメニューを削除しようとしましたが、うまくいきませんでした。表示されないようにするにはどうすればよいですか?

    • こんにちは、Petさん。

      カスタムメニューがウィジェットとして追加されていないか、外観 » ウィジェット ページを確認してください。もしそこにある場合は、そのウィジェットを削除するだけです。

      管理者

  7. こんにちは、助けていただけますか?また問題があります。メニューをすべての人に非表示にして、ベンダーのみが見れるようにするにはどうすればよいですか?どのような特定のコードを使用すればよいですか?

  8. functions.phpをこのように変更すると、次のWPバージョンにアップグレードしたときに消えてしまいませんか?

  9. この関数はセカンダリメニューも設定しますか?プライマリメニューのみを設定したいのですが。どうすればよいですか?

  10. この上記の関数はセカンダリメニューを設定していますが、ヘッダーメニューのみを設定したいのですが?
    どうすればできますか?

  11. こんにちは、

    このソリューションをありがとうございます。適用したところ完璧に動作し、追加のプラグインをインストールせずに済みました。

  12. これは、ログインユーザーメニューに場所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;
    });

  13. ———————————————————–
    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’ ); ———————————————————–

    さて、どうすればこれで動作させられますか

    —————————————————

    ———————————————————————————————————————-

    アドバイスをお願いします

  14. ログアウトしていないユーザーから単一のメニューでページを非表示にしたい場合は、どうすればよいですか?

    • ページをロックして、ログアウトしたユーザーから非表示にすることができます。これを非常に簡単に行えるプラグインがいくつかあります。Users Ultraが思い浮かびます。

  15. すべて完璧に機能しました。

    しかし、セカンダリナビゲーションメニューセクションにプライマリメニューが繰り返し表示される問題がまだ残っており、削除できません(セカンダリメニューは設定していません)。

    • 全く同じ問題が発生しています。セカンダリメニューの場所が突然反映され、私もセカンダリメニューを設定していません。:/ どうすればよいかアドバイスをお願いします。

      事前に感謝します。

  16. 聞いてください!!!

    ほとんどの人がテーマを使用しています。
    まず、テーマの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」を使用しました。

    以下のコードを使用しましたが、見事に機能しました!!!

    これは作者への感謝の気持ちです。

    こんにちは!!

  17. 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’ );

  18. こんにちは。
    WordPressのエディタで、テーマのfunctions.phpに(おそらく間違って)このコードを追加したところ、常に500サーバーエラーが発生するようになりました。コードを削除しても改善しません。

    これ以前にサイト固有のプラグインを作成しようとしましたが、うまくいきませんでした。スニペットには開始と終了の括弧が必要ですか?
    もしそうなら、どうすればよいですか?
    私のホストは今助けてくれません。彼らは1時間あたり50ユーロでプログラマーに助けを求めるように求めています。助けてください。緊急です。
    まだWordPressにログインしていますが、何をクリックしても、この特定のエラーで500エラーが発生します。
    PHP Parse error: syntax error, unexpected ‘}’ in line 1194.
    これは、functions.phpファイルのすべてのテキストの後にスニペットを貼り付けたためです。
    その後、エディターとFTP経由で修正できるかスニペットを削除しましたが、それでもエラーが発生します。
    ご返信をお待ちしております。
    敬具

    • コードをどこに追加するかによります。その前に閉じPHPタグがある場合は、php開始タグ(例:<?php)を追加する必要があります。

      このコードがfunctionsファイル内の最後のものの場合、閉じタグを追加する必要はありません。

      管理者

  19. 複数のメニューロケーションがあり、各ロケーションに異なるメニューを適用したい場合は、以下のコードを使用できます。

    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’ );

  20. これはほとんど簡単すぎました!
    簡単な記事を本当にありがとうございました。

    こうすれば、プラグインをインストールする必要がありません。

    • こんにちは、ゴーラングさん。
      プラグインを使用する方が、functions.php ファイルをコーディングするよりも優れていると感じる理由を知りたいです。以前、WordPress サイトで実際に使用されているプラグインの数に注意するように言われたことがあり、上記のコードは、テーマが更新されるたびに監視する必要があることを除けば、十分にシンプルに見えます。

      ありがとう、

  21. 素晴らしい、それを特定のロールを持つログインユーザーにメニューを表示するためにどのように使用できますか?

  22. これは素晴らしいです。試しました。動作します。しかし、ロールによってリダイレクトさせたいのですが、それは簡単ですか、それとももっと難しいですか?

  23. ありがとう。初めてメニュー関数を扱っています。

    WTGポータルマネージャープラグインを作成しています。これにより、ポータルを非常に迅速に定義できるようになります。各ポータルには独自のメニューがあります。このプラグインは、ポータルとメニューの関係をより明確にし、その他のユニークなオプションを提供します。

  24. ヘルプありがとうございます。でも、サイトでユーザーごとに異なる投稿を表示したい場合はどうすればいいですか?コーディングで可能ですか?

  25. 外観 > メニュー でメニューの場所を選択する必要があります。サイトにはメニューを追加できる場所が2つあるようです。したがって、2つの異なるメニューを作成し、それぞれに場所を割り当てる必要があります。

    • 「プライマリ」と「トップ」の区別がある場合、このコードの改訂版はどうなりますか?
      $args[‘primary-menu’] = ‘logged-in’;
      $args[‘top-menu’] = ‘logged-in’;

      else

      $args[‘primary-menu’] = ‘logged-out’;
      $args[‘top-menu’] = ‘logged-out’;

      ?

    • Wordpressでは、「トップヘッダー」の場所にメニューを2つ配置できません。提供されたコードは機能しますが、私のすべてのメニューがログイン中またはログアウト中の状態に変更され、通常のナビゲーションメニューが表示されなくなりました。

  26. トップメニューとサイトメニュー(ロゴの下)があります。トップメニューだけを変更するには、コードをどのように変更すればよいですか?現在、すべてのメニューが変更されてしまいます。

  27. これ、ありがとうございます。

    ホームページでは、サブメニュー(ドロップダウンメニュー)を持つメニュー名がドロップダウンを表示しません。ホームページ以外のページに移動すると、この問題は発生せず、すべてのメニュー項目が表示されます。

    これは、ログイン中およびログアウト中の両方のアイテムのホームページで発生しています。これを修正する方法はありますか?よろしくお願いします。

    http://www.viridianmgt.com/wordpress

  28. $args[‘menu’] = ‘logged-in’; を $args[‘secondary-menu’] = ‘logged-in’; に変更することで、特定のメニューの変更のみが可能になります。これでうまくいくはずです!

    • そのコードは機能しません。私は「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 はプライマリ静的メニューの名前です。

      • もう少しです。フッターとメインメニューの両方が変更されています。フッターメニューだけを変更しようとしています。このコードの多くのバリエーションを試しましたが、うまくいきません。何か解決策のアイデアはありますか?

        Firebugでテーマを検査したところ、フッターは「id=footer-nav」と表示されました。「secondary-menu」の代わりにこの名前を使用すべきですか?

        ありがとうございます

  29. やったー!ついに見つけたよ。こんな簡単な機能がこんなにも私の仕事を楽にしてくれるなんて、思いもよらなかった。
    みんな、ありがとう!

  30. functions.php ファイルにコードを入力しようとすると、次のエラーが発生します。

    Parse error: syntax error, unexpected ’03’ (T_LNUMBER) in /home/grantkessler/public_html/wp-content/themes/GameNews/functions.php on line 201

  31. コードを共有していただきありがとうございますが、これは本当にすべてのエリアにこのメニューを追加しますか?特定のメニューにのみ表示する方法はありますか?

  32. サイト固有のプラグインを作成し、メニューは正常に動作していますが、フッターメニューも変更されてしまいました。選択したものが表示されず、ログイン中またはログアウト中のものが表示されます。

  33. コードを入力しようとすると、サイトが完全に壊れてしまい、次のエラーメッセージが表示されます。

    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

  34. 特定のメニューにのみ適用する方法はありますか?
    次のように試しましたが、うまくいきません。
    if( $args->theme_location == ‘primary-menu’ ) {
    //ここにコード
    }
    何か良い方法はありますか?

    • これは、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さん、提案をさらに詳しく説明していただけますか?サイドバーにいくつかのサブメニューを配置していますが、このページのソリューションでは、それらの短いメニューがすべて、私のさまざまなカスタムメニューではなく、プライマリメニューの名前すべてを持つフルメニューになってしまいます。あなたの提案は、このトリックをプライマリメニューの位置にのみ適用でき、サイドバーには適用できないということでしょうか?意味は通じますか?完全なコードを提供していただけますか?どのように組み合わせるか推測しても、うまくいっていません。

        joseph
        2013年10月25日 午前1時16分

        特定のメニューにのみ適用する方法はありますか?
        次のように試しましたが、うまくいきません。
        if( $args->theme_location == ‘primary-menu’ ) {
        //ここにコード
        }
        何か良い方法はありますか?

        Fransiska
        2014年1月31日 午前2時53分

        使用

        if ($args[‘theme_location’] == ‘primary’)

        代わりにすると、うまくいきます

  35. 素晴らしいヒントです。サイト開発のちょうど良いタイミングで役立ちました。

    うまく機能しました!これを拡張して、ユーザーメタごとに異なるメニューを表示しようと思います。

    シェアしてくれてありがとう!

  36. こんにちは、ありがとうございます、とても参考になりました。 ただ、コードをどこに挿入すればいいのかまだよくわかりません。
    (メニューを作成した後、このコードをテーマのfunctions.phpファイルまたはサイト固有のプラグインに追加してください) – functions.phpファイルはどこにありますか?
    よろしくお願いします

    • 外観 » エディター に移動すると、右側のファイルリストに functions.php ファイルが表示されます。ただし、そこに functions.php ファイルが表示されない場合は、テーマフレームワークまたは子テーマを使用していることになります。その場合は、サイト固有のプラグインを作成し、そのプラグイン内にこのコードを追加する必要があります。サイト固有のプラグインに関するガイドをご覧ください。

      管理者

返信する

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