Revision: 50943
Updated Code
at September 9, 2011 20:08 by Huskie
Updated Code
/*----------------------------------------------------------- Custom Walker Function that only shows an active class and unique ID for each menu item, stripping out all the unnecessary classes and ID's. Nice! -----------------------------------------------------------*/ class Sleek_Walker extends Walker_Nav_Menu { function start_el(&$output,$item,$depth,$args) { global $wp_query; $indent = ($depth) ? str_repeat('\t',$depth) : ''; $class_names = $value = ''; $classes = empty($item->classes) ? array() : (array) $item->classes; $current_indicators = array('current-menu-item','current-menu-parent','current_page_item','current_page_parent'); $newClasses = array(); foreach($classes as $el) { if(in_array($el,$current_indicators)) { array_push($newClasses,$el); } } $class_names = join(' ',apply_filters('nav_menu_css_class',array_filter($newClasses),$item)); if($class_names != '') $class_names = ' class="active"'; $itemID = strtolower($item->title); $menu_name = sleek_get_theme_menu_name('footer-menu'); $output .= $indent . '<li id="' . $menu_name . '-' . $itemID . '"' . $value . $class_names .'>'; $attributes = !empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) .'"' : ''; $attributes .= !empty($item->target) ? ' target="' . esc_attr($item->target) .'"' : ''; $attributes .= !empty($item->xfn) ? ' rel="' . esc_attr($item->xfn) .'"' : ''; $attributes .= !empty($item->url) ? ' href="' . esc_attr($item->url) .'"' : ''; if($depth != 0) { //children stuff, maybe you'd like to store the submenu's somewhere? } $item_output = $args->before; $item_output .= '<a'. $attributes .'>'; $item_output .= $args->link_before .apply_filters('the_title',$item->title, $item->ID); $item_output .= '</a>'; $item_output .= $args->after; $output .= apply_filters('walker_nav_menu_start_el',$item_output,$item,$depth,$args); } }
Revision: 50942
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 9, 2011 19:05 by Huskie
Initial Code
/*----------------------------------------------------------- Custom Walker Function that only shows an active class and unique ID for each menu item, stripping out all the unnecessary classes and ID's. Nice! -----------------------------------------------------------*/ class WPSleek_Walker extends Walker_Nav_Menu { function start_el(&$output,$item,$depth,$args) { global $wp_query; $indent = ($depth) ? str_repeat('\t',$depth) : ''; $class_names = $value = ''; $classes = empty($item->classes) ? array() : (array) $item->classes; $current_indicators = array('current-menu-item','current-menu-parent','current_page_item','current_page_parent'); $newClasses = array(); foreach($classes as $el) { if(in_array($el,$current_indicators)) { array_push($newClasses,$el); } } $class_names = join(' ',apply_filters('nav_menu_css_class',array_filter($newClasses),$item)); if($class_names != '') $class_names = ' class="active"'; $itemID = strtolower($item->title); $output .= $indent . '<li id="' . $itemID . '"' . $value . $class_names .'>'; $attributes = !empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) .'"' : ''; $attributes .= !empty($item->target) ? ' target="' . esc_attr($item->target) .'"' : ''; $attributes .= !empty($item->xfn) ? ' rel="' . esc_attr($item->xfn) .'"' : ''; $attributes .= !empty($item->url) ? ' href="' . esc_attr($item->url) .'"' : ''; if($depth != 0) { //children stuff, maybe you'd like to store the submenu's somewhere? } $item_output = $args->before; $item_output .= '<a'. $attributes .'>'; $item_output .= $args->link_before .apply_filters('the_title',$item->title, $item->ID); $item_output .= '</a>'; $item_output .= $args->after; $output .= apply_filters('walker_nav_menu_start_el',$item_output,$item,$depth,$args); } }
Initial URL
http://darrenhuskie.com/
Initial Description
Could possibly be simplified to maximise efficiency. It relies on a separare WP Sleek framework function sleek_get_theme_menu_name. This could ideally be improved to allow the theme location to passed as a parameter somehow.
Initial Title
WordPress Custom Walker Class to remove unnecessary classes and ID\'s from menu items
Initial Tags
class, wordpress
Initial Language
PHP