WordPress管理画面からのnavを表示
管理画面からのnavを追加
このように管理画面に MENU が表示されるようになる
functions.php
//メニューを管理画面に追加 add_theme_support('menus'); function register_my_menus() { register_nav_menus( array( //複数のナビゲーションメニューを登録する関数 //'「メニューの位置」の識別子' => 'メニューの説明の文字列', 'main-menu' => 'Main_menu', 'footer-menu' => 'Footer_menu', ) ); } //上記メニューを登録 add_action( 'after_setup_theme', 'register_my_menus' );
header.php
<div class=""> <ul class="ul-h nav-menu nav-menu-right"> <?php $depth = 0; //下記参照 $main_menu = wp_get_nav_menu_items('Main_menu', array()); foreach($main_menu as $key => $menu): //下記参照 $menuのurl の中のthis_urlを 空白にします。 $url = str_replace($this_url, "", $menu->url); if($menu->ID == $main_menu[$key + 1]->menu_item_parent && $depth == 0): $depth++; ?> <li class="dropdown"> <a href="#"> <?= $menu->title; ?><i class="ion-chevron-down"></i> </a> <ul class="dropdown-menu"> <?php else: ?> <li><a href="<?= $url; ?>" class="btn-scroll"><?= $menu->title; ?></a></li> <?php endif; if($main_menu[$key + 1]->menu_item_parent == 0 && $depth > 0): $depth--; ?> </ul> </li> <?php endif; endforeach; ?> </ul> </div>
wp_get_nav_menu_items
管理画面→外観 → メニュー 内に作られたナビゲーションメニューのアイテムを返します。
str_replace
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed この関数は、subject の中の search を全て replace に置換します。