みなさん、こんにちは。
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') ); ?>
以下を試してください
<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() を確認してください。