Removing The Default Genesis Responsive Mobile Menu

This guide looks at removing the Genesis responsive built in mobile menu, well,  not just removing it but making it more modular to either use or not

This is based on using the sample theme and with a simple code comment/uncomment you can enable or disable the mobile menu. There are times where you may want to use an alternative mobile menu and it may clash with the existing Genesis menu or there are times when you simply don’t require a mobile menu, like when you only have a few menu items to display.



This approach looks at just making one change to either enable or disable the menu. A couple of new files need to be made and the relevant CSS and PHP need to be moved into, our new structure will look like the below.


Move the relevant Mobile Menu CSS

Create a new folder and file, /css/responsive-menu.css and move into it all the CSS which has the .js and .menu-toggle and .sub-menu-toggle CSS selectors, most of these are all together in style.css in the Media Query 1023px section and one selector in the Accessibility section.

Move the mobile menu PHP functions

Create a new file in /lib/responsive-menu.php and copy and edit the genesis_sample_enqueue_scripts_styles function, so in the new responsive-menu.php file the new function is as below with a new unique function name and also includes enqueuing our new modular CSS file created in the step previous, for the mobile menu, it also calls and loads the required javascript for the menu.

Include the new PHP file from functions.php

So now if you want to use the default mobile menu include the new PHP file in your functions.php

If you don’t wish to use the mobile menu, simply comment it out

// Genesis Default Responsive Menu
//include_once( get_stylesheet_directory() . '/lib/responsive-menu.php' );


This is more suited to creating a starter theme that you use over on numerous projects and modularizing components gives you better flexibility.