2010-10-23 6 views
6

Comment vérifier si un menu avec un nom, par exemple 'topnavbar' existe dans WordPress 3?Comment vérifier si un menu avec un nom spécifique existe

+0

Que voulez-vous dire par "menu" exactement? Un menu dans le back-end? –

+0

Je veux dire le menu que vous pouvez faire dans la zone d'administration. Je dois vérifier par programme si le menu avec un nom existe et l'utiliser comme ceci: wp_nav_menu (array ('menu' => 'navbar', 'depth' => '1', 'walker' => $ walker)) –

Répondre

4

Si vous jetez un coup d'oeil sur le code de la fonction wp_nav_menu, l'une des premières choses à faire est d'obtenir le menu avec ce nom, en utilisant la fonction wp_get_nav_menu_object. Cette fonction retournera le menu, ou false si elle n'existe pas

+0

Ceci fonctionne à la fois pour l'identifiant de menu ['menu_id'] et le nom de menu ['menu']. –

10

has_nav_menu() ressemble à ce que vous cherchez. http://codex.wordpress.org/Function_Reference/has_nav_menu

+2

Mauvaise réponse! Il teste pour le menu ** position **, pas le nom/id du menu. – frnhr

+5

Commentaire trompeur! Il teste ** si un menu existe dans une position spécifiée **. Le commentaire est trompeur parce qu'il m'a un peu ébranlé. Je pense que la plupart des gens viennent ici chercher has_nav_menu() * (je veux dire - pourquoi voudriez-vous vraiment savoir ce que l'utilisateur a appelé le menu ...) * De la source de has_nav_menu(): '@return bool a un menu. » – Norris

+0

« Pourquoi voudriez-vous savoir? " En partie parce que c'est ce que le demandeur a demandé, et cela devrait suffire. Si vous ne connaissez pas la réponse, vous ne devriez pas répondre en mettant en doute ses motivations. Je veux savoir parce que sur mon site actuel le client devrait avoir le contrôle sur certains sous-menus (c.-à-d. Créer les menus dans admin), et avoir des sous-menus générés par les enfants personnalisés, car ils sont nombreux et les sous-menus . –

Questions connexes