web-dev-qa-db-fra.com

Comment ajouter un menu spécifique sur une page ou des pages spécifiques

Je cherche de l'aide sur la façon d'ajouter un menu spécifique sur une page spécifique ou des pages sans plugin.

Je sais comment ajouter et enregistrer un nouveau menu comme celui-ci:

//* Register third navigation menu position
function register_additional_menu() {
  register_nav_menu( 'third-menu' ,__( 'Third Navigation Menu' ));
}
add_action( 'init', 'register_additional_menu' );
add_action( 'genesis_before_content', 'add_third_nav_genesis' );

function add_third_nav_genesis() {
    echo'<div class="osastot-valikko">';
    wp_nav_menu( array( 'theme_location' => 'third-menu', 'container_class' => 'genesis-nav-menu js-superfish sf-js-enabled sf-arrows' ) );
    echo'</div>';
}

Je voudrais avoir un menu de navigation nommé "Extra Menu" affiché uniquement sur trois pages (post = 6, post = 7, post = 8). Que devrais-je écrire dans mon function.php

Merci!

1
Konstantin Nikkari

Les pages peuvent avoir un modèle spécifique, il vous suffit donc de créer un nouveau modèle et d'y ajouter le menu.

Vous pouvez copier le code sur pages.php (c'est le modèle de page par défaut) de votre thème et le coller sur un nouveau fichier (comme "template-page-with-menu.php"). En haut du code, vous devez ajouter le nom du modèle:

<?php /* Template Name: Page with Menu */ ?>

Ensuite, sélectionnez ce modèle sur les pages que vous le souhaitez.

enter image description here

1
Saulo Padilha

essayez de travailler avec une instruction conditionnelle:

function add_third_nav_genesis() {
    if( is_page( array( 6, 7, 8 ) ) ) {
        echo'<div class="osastot-valikko">';
        wp_nav_menu( array( 'theme_location' => 'third-menu', 'container_class' => 'genesis-nav-menu js-superfish sf-js-enabled sf-arrows' ) );
        echo'</div>';
    }
}

https://developer.wordpress.org/reference/functions/is_page/

1
Michael