Ajouter un item à wp_nav_menu
J’ai un peu cherché comment faire pour ajouter manuellement un item de menu dans un menu paramétré dans WordPress. j’ai surtout essayé d’utiliser le paramètre items_wrap
de la fonction mais sans succès.
J’ai donc trouvé la parade, un peu plus lourde, le filtre : wp_nav_menu_items
Ma problématique était de personnaliser en fonction que le membre soit connecté ou non l’item de connexion ou d’accès au profil.
[pastacode provider= »manual » lang= »php » message= »Ajout d’un item via un filtre en fonction du menu »]
function user_item($items, $args) {
$newitems = '';
if( 'Main' == $args->menu ) {
$href = home_url( '/myprofile/' );
if( is_user_logged_in() ) {
$item_info = 'My profile';
}
else{
$item_info = 'Sign In';
}
$newitems = '<li><a href="' . $href . '">' . $item_info .'</a></li>';
}
return $items . $newitems;
}
add_filter( 'wp_nav_menu_items', 'user_item' , 10, 2);
[/pastacode]
Vous noterez la ligne :
[pastacode provider= »manual » lang= »php »]
if( 'Main' == $args->menu ) {
[/pastacode]
Ou Main
est le nom / slug du menu à configurer.