WordPressにはメニューを作成するカスタムメニューという機能があり、register_nav_menus()とwp_nav_menu()と二つの関数で設定できます。register_nav_menus() と wp_nav_menu()はセットが使われます。まずはfunctions.phpなどでregister_nav_menus()を記述します。連想配列の中でglobal,footerなどの任意の名前をつける。これにより、テーマの管理者はWordPressの管理画面からメニューを管理し、異なる場所に異なるメニューを設定することができます。これもWordPressのテーマが読み込まれた後、そしてすべての機能やテンプレートタグが利用可能になる前に実行したいのafter_setup_theme関数を使用します。昨日書いたadd_theme_support()と一緒の関数の中に入れてしまうケースが多いです。
function mytheme_setup() {
add_theme_support( ‘post-thumbnails’ )
〜
register_nav_menus(
array(
‘global’ => ‘グローバル’,
‘footer’ => ‘フッター’ )
);
}
add_action( ‘after_setup_theme’, ‘mytheme_setup’ );
上記のfunctions.phpに設定の後header.phpなどにwp_nav_menu()を使用してグローバルのメニューを設定します。
<?php
wp_nav_menu(
array(
‘theme_location’ => ‘global’, // メニュー位置の識別子
‘container’ => ‘nav’, // メニューを囲むコンテナタグ
‘container_id’ => ‘global-nav’, // コンテナのID
‘container_class’=> ‘global-nav’, // コンテナのクラス
‘menu_id’ => ‘global-menu’,// メニューのID
‘menu_class’ => ‘global-menu’,// メニューのクラス
‘fallback_cb’ => false // メニューが存在しない場合のフォールバック関数
) );
?>
同じようにfooter.phpなどにもフッターのメニューを設定します。
上記をすることにより、WordPressの管理画面からメニューを管理し、異なる場所に異なるメニューを設定することができます。
