If you’ve been developing on WordPress, then you may have had to use WP 3.0’s Menus: http://codex.wordpress.org/Function_Reference/wp_nav_menu
wp_nav_menu( array ( 'menu' => 'main-menu', 'container' => FALSE, 'container_id' => FALSE, 'menu_class' => '', 'menu_id' => FALSE, 'depth' => 1, 'walker' => new Description_Walker ) );
Let’s create a custom description walker…
Add this Class to your theme’s functions.php file
You will need to add this class to your theme’s function.php file and customize to suit your needs:
/** * Create HTML list of nav menu items. * Replacement for the native Walker, using the description. * * @see http://wordpress.stackexchange.com/q/14037/ * @author toscho, http://toscho.de */ class Description_Walker extends Walker_Nav_Menu { /** * Start the element output. * * @param string $output Passed by reference. Used to append additional content. * @param object $item Menu item data object. * @param int $depth Depth of menu item. May be used for padding. * @param array $args Additional strings. * @return void */ function start_el(&$output, $item, $depth, $args) { $classes = empty ( $item->classes ) ? array () : (array) $item->classes; $class_names = join( ' ' , apply_filters( 'nav_menu_css_class' , array_filter( $classes ), $item ) ); ! empty ( $class_names ) and $class_names = ' class="'. esc_attr( $class_names ) . '"'; $output .= "
Change the Depth of Menu Description
To change the depth you will need to modify the following lines of code to output the descriptions for submenu items:
$description = ( ! empty ( $item->description ) and 0 == $depth )
Change to the following for Submenus
$description = ( ! empty ( $item->description ) and 1 == $depth )