Using custom walker with your plugin
-
Hi,
I would appreciate any help you can offer with the following issue i am having. I would like to use your plugin alongside the functions of my current custom walker. Below is the walker code which i call manually from my template and its function is to output modified html and allow me to add a class in the description field that gets populated in the correct place within the output. The walker below is perfect for my visual needs, i just require the extra sub-menu functionality of your plugin if thats possible? If you cant help, no worries mate. 🙂
class description_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; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); $class_names = ' class="'. esc_attr( $class_names ) . '"'; $output .= $indent . '<li>'; $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 ) .'"' : ''; $prepend = '<span>'; $append = '</span>'; $description = ! empty( $item->description ) ? '<i class="'.esc_attr( $item->description ).'"></i>' : ''; if($depth != 0) { $description = $append = $prepend = ""; } $item_output = $args->before; $item_output .= '<a'. $attributes .'>'; $item_output .= $description.$args->link_after; $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append; $item_output .= '</a>'; $item_output .= $args->after; $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } }
-
Hi,
You can alter the item for each element using the jcs/menu_item_args filter, this should hopefully allow you to make the changes to the html you need.Documentation for this filter can be found here:
http://jamescollings.co.uk/docs/v1/jc-submenu/actions-filters/jcsmenu_item_args/Hi mate,
Worked a treat using the filter above switching ‘$item->description’.
I looked at that documentation late last night but dismissed it as being unsuitable, think i needed to get to bed. 🙂
Thank you so much for taking time out of your day to point me in a solid direction. Much appreciated.Liam
The topic ‘Using custom walker with your plugin’ is closed to new replies.