WordPress Snippets at WPcustoms

Walker for wp_nav_menu showing descriptions

The class Description_Walker extends Walker_Nav_Menu and changes the function start_el to look for $item->description.


/**
 * Snippet Name: Walker for wp_nav_menu showing descriptions
 * Snippet URL: https://wpcustoms.net/snippets/wp_nav_menu-showing-descriptions/
 */
  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 = 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 .= "