Title: Second Menu?
Last modified: August 21, 2016

---

# Second Menu?

 *  [matt84532](https://wordpress.org/support/users/matt84532/)
 * (@matt84532)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/)
 * Is there an easy way to create a second (or even third) menu that would be controllable
   from the menus toolbar in the dashboard?
 * I would like the menu to appear either/both above the logo and in the footer 
   area.
 * Thanks in advance!

Viewing 6 replies - 1 through 6 (of 6 total)

 *  [acub](https://wordpress.org/support/users/acub/)
 * (@acub)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/#post-4191501)
 * You need to register it with register_nav_menu:
 *     ```
       add_action( 'init', 'register_matts_menu' );
       function register_matts_menu() {
           if ( function_exists( 'register_nav_menu' ) ) {
               register_nav_menu( 'matts-top-menu', 'Top Menu' );
           }
       }
       ```
   
 * If you want to register more than one, change register_nav_menus above to array:
 *     ```
       register_nav_menus(array(
                   'matts-top-menu' =>  'Top Menu',
                   'matts-footer-menu' =>  'Footer Menu'
               )
           );
       ```
   
 * Than hook wp_nav_menu to where you want it displayed. I hooked this one above
   the logo/title display:
 *     ```
       add_filter('tc_logo_title_display', 'display_matts_top_menu');
       function display_matts_top_menu($output) {
       	return ( has_nav_menu( 'matts-top-menu' ) ? wp_nav_menu (
               array (
                   'theme_location' => 'matts-top-menu',
       			'container_id'    => 'top-menu',
       			'container_class'    => 'menu pull-right'
               )
           ).'<div class="clearall"></div>' : '' ).$output;
       }
       ```
   
 * And, of course, you need to style it a bit. As a basic example, I floated this
   one right, added some |’s between the items and small-ed the font-size.
 *     ```
       #top-menu ul li {
       	display: inline-block;
       	float: left;
       	list-style-type: none;
       	font-size: small;
       	}
       #top-menu ul li:before {
       	content: " | ";
       	}
       #top-menu ul > li:first-child:before {
       	content: none;
       	}
       ```
   
 * If you’re using multiple levels you’ll need to style it some more, maybe add 
   some carets and use the walker class to apply TBs classes to it, since they’re
   already embedded in the theme.
 * That’s about it.
 *  [acub](https://wordpress.org/support/users/acub/)
 * (@acub)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/#post-4191531)
 * To whoever moderated this topic:
 * I have posted a thorough answer to this question some 10-12 hours ago. Took me
   almost half an hour to document and test (I usually don’t spend more than 10 
   minutes on a support answer). Was it deleted? If yes, I’d like to know why.
 * Thank you.
 *  [WPyogi](https://wordpress.org/support/users/wpyogi/)
 * (@wpyogi)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/#post-4191532)
 * Looks like it was caught in the spam catcher – and probably accidentally deleted–
   when there’s a big backlog of spam, it happens sometimes. I’ve undeleted it.
 *  [acub](https://wordpress.org/support/users/acub/)
 * (@acub)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/#post-4191534)
 * Thank you, WPyogi. Really didn’t want to write it again. Is there a way I could
   avoid this happening again?
 *  [María Silvia](https://wordpress.org/support/users/mscemborain/)
 * (@mscemborain)
 * [12 years, 6 months ago](https://wordpress.org/support/topic/second-menu/#post-4191635)
 * Hi acub, thank you for this explanation
    Can you tell me, which file I have to
   edit, to register the new menu with register_nav_menu? is it function.php? thanks!
 *  [acub](https://wordpress.org/support/users/acub/)
 * (@acub)
 * [12 years, 5 months ago](https://wordpress.org/support/topic/second-menu/#post-4191647)
 * Yes, all php goes inside functions.php of your child theme, which should not 
   be a copy of it’s parent counterpart. If this is the first custom code you add
   to functions.php of your child theme, open a blank file, put the code below in
   it and save it as functions.php in your child theme’s folder.
 *     ```
       <?php
       add_action( 'init', 'register_matts_menu' );
       function register_matts_menu() {
           if ( function_exists( 'register_nav_menu' ) ) {
               register_nav_menu( 'matts-top-menu', 'Top Menu' );
           }
       }
   
       add_filter('tc_logo_title_display', 'display_matts_top_menu');
       function display_matts_top_menu($output) {
       	return ( has_nav_menu( 'matts-top-menu' ) ? wp_nav_menu (
               array (
                   'theme_location' => 'matts-top-menu',
       			'container_id'    => 'top-menu',
       			'container_class'    => 'menu pull-right'
               )
           ).'<div class="clearall"></div>' : '' ).$output;
       }
       ```
   
 * The CSS (4th snippet) goes inside the child theme’s style.css or the custom CSS
   panel in theme options.
    After this, you need to go to menus and select an existing
   menu (or create a new one if you need it) for the newly created menu location
   and save.

Viewing 6 replies - 1 through 6 (of 6 total)

The topic ‘Second Menu?’ is closed to new replies.

 * ![](https://i0.wp.com/themes.svn.wordpress.org/customizr/4.4.24/screenshot.png)
 * Customizr
 * [Support Threads](https://wordpress.org/support/theme/customizr/)
 * [Active Topics](https://wordpress.org/support/theme/customizr/active/)
 * [Unresolved Topics](https://wordpress.org/support/theme/customizr/unresolved/)
 * [Reviews](https://wordpress.org/support/theme/customizr/reviews/)

 * 6 replies
 * 4 participants
 * Last reply from: [acub](https://wordpress.org/support/users/acub/)
 * Last activity: [12 years, 5 months ago](https://wordpress.org/support/topic/second-menu/#post-4191647)
 * Status: not resolved