web-dev-qa-db-ja.com

カテゴリごとに異なるメニューナビゲーション

みなさん、こんにちは。

2012テーマの自己修正版を使用していますが、表示しているカテゴリに基づいて別のメインナビゲーションメニューを表示できるようにしたいと思います。

まず、GUIを使った方が簡単に理解できるようなプラグインがあります。

そうでない場合は、header.phpファイルのPHPになるでしょうか。カテゴリごとにカスタムヘッダーを記述するためのifステートメントが既にあるので、ここでメニューを切り替えるための追加コードを追加できます。

どんな助けでも素晴らしいです:)

私の既存のメニューコードは:

<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 -->

メインメニューは 'Talkative'と呼ばれ、カスタムメニューは 'Pirtek'と呼ばれます

たとえばwp_nav_menuに関数呼び出しを追加しない限り、既存のコードで何が変更されるのかがわかりません。

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

以下を試してください

<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 -->

試していませんが、これでうまくいくはずです。

詳細については、 is_category() および wp_nav_menu() を確認してください。

0
Maruti Mohanty