web-dev-qa-db-fra.com

Définition d'un "emplacement de thème" par défaut lors de la création d'un menu

J'essaie de créer un thème qui, lorsqu'il est activé, configure une navigation principale, y ajoute la page d'accueil et l'active ensuite au bon endroit.

Voici ce que j'ai jusqu'à présent:

register_nav_menu('Primary', 'Primary Navigation');

$primary_nav_menu_id = wp_create_nav_menu('Primary');

wp_update_nav_menu_item($primary_nav_menu_id, 0, array(
    'menu-item-title' =>  __('Home'),
    'menu-item-classes' => 'home',
    'menu-item-url' => home_url( '/' ), 
    'menu-item-status' => 'publish'
));

Ce qui précède crée le menu, ajoute un lien vers la page d'accueil, mais comment puis-je attribuer automatiquement à ce menu l'emplacement du thème "Navigation principale"?

Est-ce possible?

1
0Neji

Vous devez d'abord collecter les emplacements de menu, puis définir l'emplacement du menu principal avec l'ID de menu.

// Set the menu to primary menu location
$locations = get_theme_mod( 'nav_menu_locations' );
$locations['primary'] = $primary_nav_menu_id;
set_theme_mod ( 'nav_menu_locations', $locations );

Ici, je suppose que "primaire" est l’emplacement du thème faisant référence à "Navigation principale".

2
Chittaranjan