Skip to content

Instantly share code, notes, and snippets.

@srikat
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save srikat/d16b2135c9cd6bba1f93 to your computer and use it in GitHub Desktop.
Save srikat/d16b2135c9cd6bba1f93 to your computer and use it in GitHub Desktop.
How to display Custom Menu as Select Dropdown in WordPress. http://sridharkatakam.com/display-custom-menu-select-dropdown-wordpress/
<?php
//* Do NOT include the opening php tag
// [menudropdown menu="Header Menu"]
function menu_as_dropdown( $atts ) {
// Attributes
extract( shortcode_atts(
array(
'menu' => 'Select Menu',
), $atts )
);
ob_start();
wp_nav_menu( array(
// 'theme_location' => 'mobile',
'menu' => $menu,
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<div class="mobile-menu"><form><select onchange="if (this.value) window.location.href=this.value">%3$s</select></form></div>',
) );
return ob_get_clean();
}
add_shortcode( 'menudropdown', 'menu_as_dropdown' );
<?php
//* Do NOT include the opening php tag
// Nav Menu Dropdown Class
include_once( CHILD_DIR . '/lib/classes/nav-menu-dropdown.php' );
wp_nav_menu( array(
// 'theme_location' => 'mobile',
'menu' => 'Header Menu',
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<div class="mobile-menu"><form><select onchange="if (this.value) window.location.href=this.value">%3$s</select></form></div>',
) );
<?php
//* Do NOT include the opening php tag
// Nav Menu Dropdown Class
include_once( CHILD_DIR . '/lib/classes/nav-menu-dropdown.php' );
/**
* Mobile Menu
*
*/
function be_mobile_menu() {
wp_nav_menu( array(
// 'theme_location' => 'mobile',
'menu' => 'Header Menu',
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<div class="mobile-menu"><form><select onchange="if (this.value) window.location.href=this.value">%3$s</select></form></div>',
) );
}
add_action( 'genesis_before_header', 'be_mobile_menu' );
[menudropdown menu="Header Menu"]
.mobile-menu {
max-width: 400px;
margin: 40px auto;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment