Why aren't my drupal 7 submenu's showing?

22,250

Solution 1

Make sure that the parent menu "Show as expanded" attribute is checked.

Go to admin/structure/menu/item/MENU_ITEM_ID/edit, and check "Show as expanded"

Solution 2

Instead of using the $main_menu variable, you can use the main-menu block, which is generated with the menu.

If you put the "Main menu" block into the "Navigation" region at admin/structure/block, print render($page['navigation']) in the page.tpl.php will print out the complete menu, including its sub menu items (children).

Just make sure you tick the "Show as expanded" option in the parent menu link.

Lastly, remove the "print theme" stuff, otherwise you end up with double menu's.

the page.tpl.php will look something like this:

<?php if ($page['navigation']): ?>
  <div id="navigation"><div class="section clearfix">  
    <?php print render($page['navigation']); ?>        
  </div></div><!-- /.section, /#navigation -->
<?php endif; ?>  

Solution 3

The stark theme out-of-the-box doesn't show submenuus in it's main menu either (2011/04).

If you however go to admin/structure/blocks, and drag the menu block to the header region in the stark theme, it has submenus.

You'll also have two menus then, the original one without submenus and the new one with submenus. You can disable the original one in admin/appearance/stark/settings.

$2c, *-pike

Share:
22,250

Related videos on Youtube

Nick
Author by

Nick

Updated on March 16, 2020

Comments

  • Nick
    Nick about 4 years

    I can't seem to get my sub-menus to display.

    I've gone to: Home » Administration » Structure » Menus

    Then, I've edited the parent menu and checked the tickbox that says "Show as expanded" - but still nothing.

    The code on my page.tpl.php page for the navigation I'm referring to, is as follows:

    <?php
    if ($page['navigation'] || $main_menu): 
    ?>
    
    <?php
     print theme('links__system_main_menu', array(
              'links' => $main_menu,
              'attributes' => array(
                'id' => 'nav',
                'class' => array('links', 'clearfix'),
              ),
              'heading' => array(
                'text' => t('Main menu'),
                'level' => 'h2',
                'class' => array('element-invisible'),
              ),
            )); 
    ?>
    
    <?php
     print render($page['navigation']); 
    ?>
    <?php
     endif; 
    ?>
    

    What am I doing wrong?

    Any help would be GREATLY appreciated.

Related