2017-10-05 10 views
0

WordPressの新機能で、サブメニューdivに列を配置する必要があるため、メインのナビゲーションメニューのカスタム構造をコーディングしています。しかし、私のコードが動作しない:私は、メニュー名を正しく入力し、私が行った場合 カスタムWordpressのメニュー構造

  <div class="menu-menu-1-container"> 
      <ul id="menu-menu-1" class="menu"> 

      <?php 
      $menuname = wp_get_nav_menu_object("Menu 1"); 
      $menu_name = $menuname->name; 
      $locations = get_nav_menu_locations(); 
      $menu = wp_get_nav_menu_object($locations[ $menu_name ]); 
      $menuitems = wp_get_nav_menu_items($menu->term_id, array('order' => 'DESC')); 

      $count = 0; 
      $submenu = false; 

      foreach($menuitems as $item): 
        // set up title and url 
       $title = $item->title; 
       $link = $item->url; 

       // item does not have a parent so menu_item_parent equals 0 (false) 
       if (!$item->menu_item_parent): 
       // save this id for later comparison with sub-menu items 
       $parent_id = $item->ID; 
      ?> 

       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children"> 
        <a href="<?php echo $link; ?>"><?php echo $title; ?></a> 

        <?php 

        endif; 

        if ($parent_id == $item->menu_item_parent): 
        if (!$submenu): $submenu = true; ?> 

         <ul class="sub-menu"> 

         <?php endif; ?> 

         <li class="menu-item menu-item-type-post_type menu-item-object-page"> 
         <a href="<?php echo $link; ?>"><?php echo $title; ?></a> 
         </li> 
         <?php if ($menuitems[ $count + 1 ]->menu_item_parent != $parent_id && $submenu): ?> 

         </ul> 

         <?php 
         $submenu = false; endif; 
         endif; 
         ?> 

       <?php if ($menuitems[ $count + 1 ]->menu_item_parent != $parent_id): ?> 
       </li> 

       <?php 
       $submenu = false; endif; 
       $count++; endforeach; 
       ?> 


      </ul> 
     </div> 

は現在のところメニューが全く表示されていない、私がチェックしました。誰かが私が間違っていることを見ることができますか?

+0

あなたはウォーカークラスで作業しようとしましたか? –

答えて

0

WordPressには、メニューの簡単なクエリがあります。

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu' ) ); ?>

あなたは、あなたが簡単にCSSやJavaScriptでこれを調整することができますhttps://developer.wordpress.org/reference/functions/wp_nav_menu/から多くを読むことができます。 @ akshay-shah州のように、ブートストラップのようなcssフレームワークを使いたいなら、nav walkerクラスを使うことができます。 Ref:https://github.com/wp-bootstrap/wp-bootstrap-navwalker