web-dev-qa-db-fra.com

2 menus différents et utilisant les mêmes éléments dans les deux

Je construis un thème dans lequel j'ai 2 menus:

  1. Menu de pied de page (footer-menu)
  2. Menu principal (main-menu)

Cependant, lorsque j'ai appelé le fichier principal dans le fichier header.php, il utilise les mêmes liens que ceux ajoutés dans la navigation du pied de page.

S'il vous plaît voir mon code.

Enregistrement des navs

register_nav_menus( array(
        'main-menu' => esc_html__( 'Main', 'wd' ),
        'footer-menu' => esc_html__( 'Footer', 'wd' ),
    ) );

header.php

<?php wp_nav_menu('main-menu'); ?>

footer.php

<?php wp_nav_menu('footer-menu'); ?>

Qu'est-ce que je fais mal? Cela n'a jamais eu lieu auparavant. Jamais.

1
Jake Punton

Le fait qu'ils aient le même nom ne signifie pas que WP sait que le menu "menu principal" est placé dans l'emplacement "menu principal". Vous devrez spécifier ceci, comme vous pouvez le voir à partir du code source de wp_nav_menu :

$args = array (
  'menu'           => 'main-menu',
  'theme_location' => 'main-menu',
  );
wp_nav_menu ($args);
2
cjbj

wp_nav_menu attend un tableau d'arguments, pas une chaîne. Si main-menu et footer-menu sont des emplacements de thème, vous devez le spécifier dans vos arguments:

wp_nav_menu( array( 'theme_location' => 'main-menu' ) );
1
Milo