1. TOP
  2. wordpress
  3. ナビメニューの有効化

ナビメニューの有効化

ナビゲーションメニューを利用する

ワードプレスには管理画面からメニューをカスタムできるナビゲーションメニューが用意されています。

この機能をオリジナルテーマで利用するためにregister_nav_menus( );をfunctions.phpに追加していきます。

functions.phpサンプル

function samplewp_setup() {
add_theme_support( ‘title-tag’ );

add_theme_support( ‘post-thumbnails’ );

add_image_size( ‘samplewp-thumbnail’, 190, 130, true );

add_image_size( ‘samplewp-hero’, 1200, 630, true );

register_nav_menus( );

ここではタイトルタグのように

add_theme_support( ‘menus’ );

とする必要はありません

サンプル

add_image_size( ‘easiestwp-hero’, 1200, 630, true );

register_nav_menus( array(
‘global’ => ‘Global Menu’,
) );

グローバルメニューを作成するのでスラッグは‘global’

説明については‘Global Menu’,としておきます。

メニュー作成してみる

では管理画面から「外観」→「メニュー」として「グローバルメニュー」とメニュー名に記述します。

チェックボックスにチェックを入れて「メニューに追加」をクリックするとメニュー構造に新しいメニューが追加されます。

消したい場合は「▼」をクリックして「削除」をクリック

メニューの順番を入れ替えたい場合はドラッグすれば入れ替わります。

最後に「メニューの位置」から「Global Menu」にチェックを入れて保存します。

ここでは設定が変わっているため「メニュー位置」から「Global Menu」が入っていませんが、register_nav_menus( array(
‘global’ => ‘Global Menu’,
) );の設定でチェックボックスのある「Global Menu」が表示されるはずです

メニュー表示を書き換える

ナビサンプル

<nav class=”global-nav”>
<ul id=”global-menu” class=”menu”>
<li>~

中略

</li>
</ul>
</nav>

 

変更後ナビサンプル

<?php if ( has_nav_menu( ‘global’ ) ) : ?>
<?php wp_nav_menu( array(
‘theme_location’ => ‘global’,
‘menu_id’ => ‘global-menu’,
‘container’ => ‘nav’,
‘container_class’ => ‘global-nav’,
) ); ?>
<?php endif; ?>

ヘッダーに書かれている<nav class=”global-nav”></nav>内を、下の「変更後ナビサンプル」に書き換えます

<?php if ( has_nav_menu( ‘global’ ) ) : ?>

もし「Global Menu」に登録されたメニューがある場合

<?php wp_nav_menu( array(

wp_nav_menuを使ってメニューを出力します

‘theme_location’ => ‘global’,

登録されたメニュー位置の指定

‘menu_id’ => ‘global-menu’,

メニューのID

‘container’ => ‘nav’, ’container_class’ => ‘global-nav’,
) ); ?>

<ul>要素をどのコンテナでくるむのか指定します。

ここでは<nav class=”global-nav”>なので’nav’になり、クラス名は”global-nav”です

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です