Existe-t-il un moyen de déterminer l’emplacement du thème d’un menu lors de sa modification à l’aide du crochet de filtre wp_get_nav_menu_items
?
J'aimerais seulement ajouter des éléments à certains menus et je ne veux pas dépendre de l'ID ou du nom du menu.
Pas sûr que ce soit le moyen le plus simple, mais vous pouvez conditionnellement ajouter le filtre uniquement à l'emplacement que vous souhaitez modifier via le filtre wp_nav_menu_args
lorsque wp_nav_menu
est appelé, puis supprimez immédiatement le filtre afin qu'il ne soit pas appliqué aux autres menus.
function wpa108544_nav_menu_args( $args ){
// check if it's the location we want the filter applied to
if( 'primary' == $args['theme_location'] )
add_filter( 'wp_get_nav_menu_items', 'wpa108544_get_nav_menu_items', 10, 3 );
return $args;
}
add_filter( 'wp_nav_menu_args', 'wpa108544_nav_menu_args' );
function wpa108544_get_nav_menu_items( $items, $menu, $args ){
// remove the filter
remove_filter( current_filter(), __FUNCTION__, 10, 3 );
// do your menu manipulation stuff here
}