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