web-dev-qa-db-fra.com

Différents menus de navigation par catégorie

Bonjour à vous tous, personnes utiles :)

J'utilise une version modifiée par moi-même du thème 2012 et j'aimerais pouvoir afficher un menu de navigation principal différent en fonction de la catégorie que je visualise.

Premièrement, existe-t-il un plugin pour une chose telle qu'une interface graphique serait plus facile pour moi de me familiariser avec

Sinon, je suppose que ce sera PHP dans le fichier header.php? J'ai déjà des instructions if pour les en-têtes personnalisés par catégorie, ce qui me permet d'ajouter le code supplémentaire pour changer de menu ici.

Toute aide est géniale :)

Mon code de menu existant est:

<nav id="site-navigation" class="main-navigation" role="navigation">
            <h3 class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></h3>
            <a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
            <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
        </nav><!-- #site-navigation -->

Le menu principal s'appelle 'Talkative' Le menu personnalisé s'appelle 'Pirtek'

Je ne vois pas dans le code existant ce qui serait changé sauf si je dois ajouter des appels de fonction supplémentaires à wp_nav_menu par exemple

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' 'menu' => 'Talkative') ); ?>
1
Sam James

Essayez ce qui suit

<nav id="site-navigation" class="main-navigation" role="navigation">
    <h3 class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></h3>
    <a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
    <?php
    //Replace it with the id/slug/name(anything you want)
    if( is_category( 'Talkative' ) ) {
        wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'menu' => 'Talkative') );
    } elseif( is_category( 'Pirtek' ) ) {
        wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'menu' => 'Pirtek') );
    } else {
        wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) );
    }
    ?>
</nav><!-- #site-navigation -->

Je n'ai pas essayé, mais ça devrait marcher.

Pour plus de détails, vérifiez is_category () et wp_nav_menu () ()

0
Maruti Mohanty