WordPressのテーマにはカスタムメニューに対応しているものが多くあります。
ですが、
- お気に入りのテーマがカスタムメニューに対応していない時
- カスタムメニューを増やしたい時
- 独自の位置にカスタムメニューを置きたい時
- 独自のテーマを作る時
このような時はfunctions.php
にカスタムメニューのコードを足して追加する必要があります。その方法を紹介します。
カスタムメニューを追加する
functions.php
へカスタムメニューを準備するコードと、メニューを表示したい箇所へカスタムメニューを表示するためのコードを追加します。
functions.php へ
function menu_setup() { register_nav_menus( array( 'global' => 'グローバルメニュー', 'side' => 'サイドメニュー', 'footer' => 'フッターメニュー', ) ); } add_action( 'after_setup_theme', 'menu_setup' );
このコードでWordPressのメニュー画面に3つのメニューが追加されます。
表示したいテーマファイル
header.php
やfooter.php
など、全ページ共通のテーマファイルの表示したい箇所へ以下のコードを加えます。
<?php wp_nav_menu( array( 'theme_location' => 'global', )); ?>
上記のコードで設定したグローバルメニューが表示されます。
最低限表示するには上記のようにメニュー名の指定のみでOKですが、wp_nav_menu()
には後述の多くの設定があります。
カスタムメニューの設定
WordPress Codexからの引用ですが、以下の設定ができます。
<?php wp_nav_menu( array( 'theme_location' => 'global', 'menu' => '', 'menu_class' => 'menu', 'menu_id' => '', 'container' => 'div', 'container_class' => 'div-class', 'container_id' => 'div-id', 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'echo' => true, 'depth' => 0, 'walker' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', )); ?>
主に出力されるHTMLについての設定です。Codexにも掲載されているため説明は省きますが、実際に試した方が分かりやすいです。
出力HTMLをさらにカスタマイズする方法も紹介していますので、ぜひご参考に!