web-dev-qa-db-fra.com

quel est le meilleur moyen de personnaliser nav-menu-template.php?

J'ai modifié la fonction start_el dans nav-menu-template.php en remplaçant $item->ID par $item->title afin que les éléments html li du menu aient des noms de classes plus lisibles. En détail, j'ai changé la ligne

$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );

à

$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->title, $item, $args );

Cela facilite la modification du fichier style.css pour un thème. Je me demande s’il est possible de "transférer" la modification de nav-menu-template.php vers le thème (peut-être functions.php?), Afin que je ne sois pas obligé de modifier le fichier chaque fois que je mets à niveau WP version.

1
Toc

Ajoutez simplement ce qui suit dans votre functions.php:

add_filters( 'nav_menu_item_id', 'wpse64308_nav_menu_item_id',10,3);
function wpse64308_nav_menu_item_id( $id, $item, $args){
    return 'menu-item-'.$item->title;
}
2
Stephen Harris