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の管理画面からメニューを管理し、異なる場所に異なるメニューを設定することができます。





投稿者

Kの手習い

前職はOA機器の販売営業でしたが、退職して、50代で1からプログラマーを目指します。一般的にこの年齢からは厳しいと言われておりますが、この歳ならではの経験を活かして、頑張ります!

コメントを残す