WordPressの特定のページに他のメニューを表示する方法

コメントを残す
  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

メニューを

ワードプレスでは、特定のページや記事にメインメニューではなく、他のメニューを表示する必要があります。 この記事では、ページや記事に基づいて、他のメニューを表示する方法について説明します。

テーマで機能を提供する場合

Avada私Jupiterのようなテーマでは、ページの文章編集画面で、他のメニューを指定するためのオプションが提供されます。

例えば、 ああ、海のテーマのページの編集画面の下部に表示される Fusion Page Options> Header> Main Navigation Menuで、ページや記事に表示するナビゲーションメニューを設定することができます。

ああ、海フュージョンページのオプション

通常、このオプションを個別に指定しない場合、メインメニューに指定されたメインメニューが表示されます。

Jupiterのテーマでも似ています。 Jupiter Page OptionsMain 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/

ここで...

  1. wp_nav_menu_argsはワードプレスフィルターです。 詳細については、 ワードプレスの公式文書を参照してみてください。
  2. $ args [ 'theme_location'] == 'header」部分は、メニューの位置に合わせて適切に変更してください。
  3. $ args [ 'menu']の部分は、メニューのIDです。
  4. is_page(「1159」)の部分は、対応するメニューが表示されることを希望するページを指定します。

メニューのIDを確認するには、 ルックス>メニューに移動し、そのメニューを選択した後、「選択"を押すと、メニューの編集]画面が表示されます。このとき、ブラウザアドレス欄を確認してみると、メニューのiDを確認することができます。

ワードプレスのメニューIDの確認

上記のコードは、テストをしてみなくて正常に動作しているかどうかを保証することはできません。

注:



コメントを残す

コメント