web-dev-qa-db-fra.com

Modifier le code HTML pour les éléments de menu dans le menu frontal par défaut

J'utilise Multisite et j'aimerais pouvoir ajouter des éléments de menu à tous les menus front-end sur tous les sites. Cela devrait fonctionner pour les menus enregistrés via l'interface d'administration ainsi que pour le menu par défaut affiché.

Ce code fonctionne pour les éléments de menu enregistrés, mais pas pour le menu par défaut:

add_filter( 'wp_nav_menu_items', 'your_custom_menu_item', 10, 2 );

function your_custom_menu_item ( $items, $args ) {
    $items .= '<li>my menu item</li>';
    return $items;
}

Ma question est la suivante: comment puis-je obtenir une fonctionnalité similaire à celle décrite dans le code ci-dessus pour le menu frontal par défaut? Idéalement, je serais capable de prévoir/ajoute le code HTML généré pour les éléments de menu quelle que soit la façon dont ils ont été générés (menu enregistré/menu par défaut).

Alternativement , toute information sur la manière dont WP génère le menu par défaut serait utile.

Je peux dire que le filtre wp_nav_menu_times n'est même pas déclenché avec le menu par défaut. La fonction wp_nav_menu dans wp_includes/nav_menu_template.php qui applique les filtres est renvoyée tôt (avant la plupart des travaux, y compris l'application de filtres) si aucun menu n'a été trouvé par wp_get_nav_menu_object.

1
SomewhereThere

add_filter ('wp_page_menu', 'your_custom_menu_item', 10, 2);

0
Rajeev Vyas