WordPressで、特定のページや記事にメインメニューではなく、他のメニューを表示する必要があります。 この記事では、ページや記事に基づいて、他のメニューを表示する方法について説明します。
テーマで機能を提供する場合
Avadaナ Jupiter 同じテーマでは、ページの文章編集画面で、他のメニューを指定するためのオプションが提供されます。
例えば、 Avadaのページの編集画面の下部に表示される Fusion Page Options> Header> Main Navigation Menuで、ページや記事に表示するナビゲーションメニューを設定することができます。
通常、このオプションを個別に指定しない場合、メインメニューに指定されたメインメニューが表示されます。
Jupiter テーマでも似ています。 Jupiter ページオプションの Main Navigation Locationでメニューを指定することができます。
しかし、これらのオプションは、いくつかのテーマのみ提供されます。 使用中のテーマでは、このオプションがない場合は、プラグインを使用するか、直接コーディングする方法を使用してください。
プラグインを使用する
プラグインを使用して、個々のページや記事に他のナビゲーションメニューを配置することができます。 この機能をする有名なプラグインPage Specific Menu Itemsがありますが、現在、2年以上更新されないので、できれば使用しない方が良いようです。
同様のプラグインとして PageMenuがあります。 このプラグインは、Page Specific Menu Itemsより少ない使用されているが、最近のアップデートされたので、このプラグインでテストしてみてください。
ユーザーコード
プラグインを使用すると便利ですが、頻繁にアップデートがないされて、開発者によって捨てられる場合があります。 また、プラグインを多く使用していいのはありません。
直接コードを作りこんたい、次のコードを使用しているテーマ(子テーマ)の関数ファイルに入れてください。 (子テーマを使用しない場合、今後のテーマの更新時にコードが失われます。)
// Conditionally change menus add_filter( 'wp_nav_menu_args', 'bb_wp_nav_menu_args' ); function bb_wp_nav_menu_args( $args = '' ) { // change the menu in the Header menu position if( $args['theme_location'] == 'header' && is_page('1159') ) { $args['menu'] = '32'; // 32 is the ID of the menu we want to use here } return $args; } // 출처: https://beyondbeaver.com/wordpress-different-main-menu-on-different-pages/
ここで...
- wp_nav_menu_argsは WordPress フィルタです。 詳細については、 WordPress 公式文書を参照してみてください。
- $args['theme_location'] == 'header'部分はメニューの位置に合わせて適切に変更してください。
- $args['menu'] 部分はメニューの ID です。
- is_page('1159') 部分は、対応するメニューが表示されるページを指定します。
メニューのIDを確認するには、 ルックス>メニューに移動し、対応するメニューを選択した後、選択「を押します。メニュー編集画面が表示されます。このときブラウザのアドレス欄を確認すると、メニューのiDを確認できます。
上記のコードは、テストをしてみなくて正常に動作しているかどうかを保証することはできません。
コメントを残す