このレッスンでは、管理画面からメニューの構造や項目の並ばせ方などを管理することができるカスタムメニューの設定・設置方法を解説しています。
動画
レッスンの準備
このレッスンでは、上記リポジトリのwp-lesson-20
というディレクトリにあるファイルを使って学習を進めていきます。
WordPressのルートディレクトリにあるwp-content
の中のthemes
にwp-lesson-20
ディレクトリを設置しましょう。
カスタムメニューを利用できるようにする
カスタムメニューとは、管理画面内メニューにてメニュー構成やリンク先などを柔軟に設定することができます。
functions.phpにカスタムメニューを登録する
functions.php
を開き、カスタムメニューを登録します。
after_theme_setup
にフックできる位置に以下のソースコードを記述します。(コンテンツ幅の下辺りでOK)
// カスタムメニューを設定
register_nav_menus(
array(
'globalnav' => 'グローバルナビゲーション',
)
);
こうすることで、globalnav
というロケーションとグローバルナビゲーション
というディスクリプションを登録することができます。
管理画面で、外観→メニューを確認・設定(作成)してみましょう。(詳しくは動画で)
カスタムメニューの表示
header.php
に記述してあるナビゲーション部分を、カスタムメニューにしていきます。header.php
ファイルを開きます。
<nav class="p-global-navigation">
<ul>
<li><a href="<?php echo esc_url( home_url() ); ?>">HOME</a></li>
<li><a href="<?php echo esc_url( home_url( '/profile' ) ); ?>">PROFILE</a></li>
<li><a href="<?php echo esc_url( home_url( '/blog' ) ); ?>">BLOG</a></li>
<li><a href="<?php echo esc_url( home_url( '/contact' ) ); ?>">CONTACT</a></li>
</ul>
</nav>
現在、こういった記述になっている<nav>〜</nav>
部分をカスタムメニュー化します。以下のような記述になります。
<?php wp_nav_menu( array( 'theme_location' => 'globalnav', 'container' => 'nav', 'container_class' => 'p-global-navigation', ) ); ?>
theme_location | 表示するカスタムメニューのロケーション |
container | メニューをラップするタグを指定 |
container_class | ラップするタグに付与するCSSクラス名 |
container
とcontainer_class
で既存のマークアップを再現できるように記述しています。他にも設定できるものがたくさんあるので、ぜひ確認してみてください。
実際の表示を確認してみましょう。
このレッスンの関連動画一覧を見る