Adding a top navigationn menu to a Genesis child theme is quite easy. There are a couple of approaches. First, one can simply move the primary navigation to the top.
<?php | |
/** Reposition the primary navigation */ | |
remove_action( 'genesis_after_header', 'genesis_do_nav' ); | |
add_action( 'genesis_before', 'genesis_do_nav' ); |
Howevever, if you are already using the primary navigation, this may not work for you and a different approach may be necessary.
The approach depends on what menus you are currently using (e.g., using both primary and secondary or just primary with secondary not registered, etc). You would need to first, register the menu and second, then, output the menu.
Register the Menu
First locate something like the following in your functions.php file.
https://gist.github.com/4496105
If you don't then, you have the default Genesis setup. This is the same as having the following in your functions.php file.
So you have two options:
- If not using the secondary navigation, you can use secondary navigation as the top menu
- Create a new top menu navigation system
Use Secondary Navigation as Top Menu
<?php | |
/** Reposition the secondary navigation */ | |
remove_action( 'genesis_after_header', 'genesis_do_subnav' ); | |
add_action( 'genesis_before', 'genesis_do_subnav' ); |
Create Top Navigation
To create a new navigation system, you need to do the following in your functions.php:
This will add a menu system of Top that you can find in Appearance > Menus. If you just want primary and top, remove the secondary menu from the middle.
Output the Menu
Finally, you will need to output the menu.
This will output your top navigation the same as you output your primary navigation with all references to
nav
changed to top-nav
.
Pablo says
Thanks for the write-up! One question, though. Where does the code snippet in wps_do_top_nav.php, go?
Travis Smith says
It can go in functions.php.
Pablo says
hmmm… I (think) I’ve followed your instructions re: creating/adding a top nav menu, but the menu shows up on my website w/the links stacked, i.e. vertically. Would you mind taking a look @ my child theme’s functions.php file (that I posted on pastebin.com)?: http://pastebin.com/f0mddYD7
Did I mess up the code snippets (lines 111-45) you provided, somehow?