web-dev-qa-db-fra.com

Comment ajouter un support de menu à un thème?

J'ai essayé quelques tutoriels. Tout ce que je pense, c'est que je devrais utiliser register_nav_menus(), puis ajouter le menu dans header.php

Voici le code que j'ai essayé dans functions.php à partir de ce site d'aide

function my_cool_menu_function(){
  register_nav_menus( array(
    'primary' => 'Primary Navigation'
  ));
}

add_action( 'after_setup_theme', 'my_cool_menu_function' );

Dans header.php

<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

Quand j'ai essayé de vérifier si un menu est enregistré avec cette fonction $locations = get_nav_menu_locations();var_dump($locations);

J'ai un tableau de taille zéro. i, e pas de menu enregistré.

Est-ce que je manque quelque chose?

Je peux voir quelques liens en front-end qui sont des pages, je suppose.

Je vois que Your theme does not natively support menus, but you can use them in sidebars by adding a “Custom Menu” widget on the Widgets screen.

Donc, je pense que le menu ci-dessus n'est pas enregistré.

Qu'est-ce qui ne va pas ici?

J'ai aussi ajouté add_theme_support('nav-menus'); dans functions.php

Mises à jour

J'ai essayé le même code ci-dessus via un plugin, alors je peux voir le menu. Ce qui signifie que cela ne fonctionne pas avec le fichier theme functions.php. Je ne sais pas pourquoi cela se produit.

Est-ce que quelqu'un le sait?

1
rram

Le repli par défaut pour wp_nav_menu() est wp_page_menu(). Ainsi, si vous n'avez pas défini de menu pour un emplacement spécifique et que vous ne modifiez pas le paramètre fallback_cb dans votre code header.php, vous verrez alors une liste de pages. De plus, votre var_dump retournera un tableau vide. Vous devez aller dans Apparence> Menus et créer un menu. Puis attribuez-le à l'emplacement principal.

enter image description here

1
helgatheviking