WordPress管理画面からのnavを表示

管理画面からのnavを追加

このように管理画面に MENU が表示されるようになる

f:id:happy_teeth_ago:20200714150359j:plain

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' );

f:id:happy_teeth_ago:20200714150645j:plain

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 に置換します。