WordPress: mostrare gli ID delle risorse collegate alle voci del menu di navigazione

WordPress: mostrare gli ID delle risorse collegate alle voci del menu di navigazione

Le voci del menu di navigazione di WordPress possono essere modificate per mostrare l'ID della risorsa collegata. Vediamo come.

Inserite il seguente codice in functions.php:


class My_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 id="menu-item-'. $item->ID . '"' . $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        ) .'"' : '';
        $attributes .= ' data-id="'. esc_attr( $item->object_id        ) .'"';



        $item_output = $args->before;
        $item_output .= '<a'. $attributes .'>';
        $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
        $item_output .= '</a>'; /* This is where I changed things. */
        $item_output .= $args->after;

        $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    }
}

Quindi usatelo con la funzione wp_nav_menu():


$args = array(
	'theme_location' => 'main-menu',
	'walker' => new My_Walker
);

wp_nav_menu( $args );

Ora ciascun link del menu di navigazione avrà un attributo data-id con l'ID dell'elemento corrispondente.

Torna su