2017-10-05 41 views
0

Je suis nouveau dans Wordpress et je code une structure personnalisée pour mon menu de nav principal car je dois pouvoir mettre des colonnes dans les divs du sous-menu. Cependant, mon code ne fonctionne pas:Structure du menu Wordpress personnalisé

  <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> 

aucun menu est affiché du tout, je vérifié actuellement si j'orthographié le nom du menu correctement et moi. quelqu'un peut-il voir ce que je fais mal?

+0

Avez-vous essayé de travailler avec la classe woker? –

Répondre

0

WordPress a une requête simple pour ses menus.

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

Vous pouvez lire la suite de https://developer.wordpress.org/reference/functions/wp_nav_menu/ Vous pouvez facilement régler cela avec CSS et Javascript. mais comme dans les états @ akshay-shah, vous pouvez utiliser la classe nav walker si vous souhaitez utiliser des frameworks css comme bootstrap. Ref: https://github.com/wp-bootstrap/wp-bootstrap-navwalker