Created
February 21, 2017 20:00
-
-
Save chodorowicz/4b03f6ea906ae66852c9c87a0e975553 to your computer and use it in GitHub Desktop.
remove li from wp_nav_menu, preserve classes, custom walker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// based on, fixed warnings http://www.designtoday.info/removing-li-menu-from-wordpress/ | |
class Description_Walker extends Walker_Nav_Menu { | |
function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) { | |
$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 .= ""; | |
$attributes = ''; | |
!empty( $item->attr_title ) and $attributes .= ' title="' . esc_attr( $item->attr_title ) .'"'; | |
!empty( $item->target ) and $attributes .= ' target="' . esc_attr( $item->target ) .'"'; | |
!empty( $item->xfn ) and $attributes .= ' rel="' . esc_attr( $item->xfn ) .'"'; | |
!empty( $item->url ) and $attributes .= ' href="' . esc_attr( $item->url ) .'"'; | |
$title = apply_filters( 'the_title', $item->title, $item->ID ); | |
$item_output = $args->before | |
. "<a $attributes $class_names>" | |
. $args->link_before | |
. $title | |
. '</a>' | |
. $args->link_after | |
. $args->after; | |
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); | |
} | |
} | |
// usage | |
$menu = wp_nav_menu( array( | |
'theme_location' => 'top_menu', // we've registered a theme location in functions.php | |
'container' => false, // this is usually a div outside the menu ul, we don't need it | |
'items_wrap' => '<nav id="%1$s" class="%2$s">%3$s</nav>', // replacing the ul with nav | |
'echo' => false, // don't display it just yet, instead we're storing it in the variable $cleanermenu | |
'walker' => new Description_Walker, | |
'menu_class' => "Menu" | |
)); | |
?> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment