WordPress.org

Make WordPress Core

Ticket #13976: 13976.diff

File 13976.diff, 1.5 KB (added by nacin, 4 years ago)
  • wp-includes/nav-menu-template.php

     
    1616 */ 
    1717class Walker_Nav_Menu extends Walker { 
    1818        /** 
     19         * @see Walker::start_el() 
     20         * @since 3.0.1. 
     21         * @var array 
     22         */ 
     23        static $_used_menu_item_ids = array(); 
     24 
     25        /** 
    1926         * @see Walker::$tree_type 
    2027         * @since 3.0.0 
    2128         * @var string 
     
    6673         */ 
    6774        function start_el(&$output, $item, $depth, $args) { 
    6875                global $wp_query; 
     76 
    6977                $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; 
    7078 
    7179                $class_names = $value = ''; 
    7280 
    7381                $classes = empty( $item->classes ) ? array() : (array) $item->classes; 
     82                $classes[] = 'menu-item-' . $item->ID; 
    7483 
    7584                $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); 
    7685                $class_names = ' class="' . esc_attr( $class_names ) . '"'; 
    7786 
    78                 $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>'; 
     87                if ( ! in_array( $item->ID, Walker_Nav_Menu::$_used_menu_item_ids ) ) { 
     88                        $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>'; 
     89                        Walker_Nav_Menu::$_used_menu_item_ids[] = $item->ID; 
     90                } else { 
     91                        $output .= $indent . '<li' . $value . $class_names .'>'; 
     92                } 
    7993 
    8094                $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : ''; 
    8195                $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';