显示特定类别的另一个主导航菜单

时间:2013-07-04 作者:Rafał Wyszomirski

我对Wordpress很陌生,尤其是在PHP编程方面。我正在使用Ciola Theme from Theme Forest. 我想实现的是在主菜单下显示一个子菜单,但仅针对特定类别。我在theme中添加了菜单core-functions.php:

add_theme_support( \'menus\' );
    // registering menus
    register_nav_menus(
        array(
    \'top\' => \'Top Navigation Menu\', // top nav
    \'main\' => \'Main Navigation Menu\', // main nav in header
    \'wybrzeze\' => \'Wybrzeże Navigation Menu\', // wybrzeze nav in header
    \'footer\' => \'Footer Navigation Menu\',  // secondary nav in footer
        )
    );
我的条目是wybrzeze,Wybrzeże导航菜单。

然后我编辑了header.php 文件以尝试添加主题支持者要求我填写的一些信息:

<!-- Holding main menu -->
        <?php  if ( has_nav_menu( \'main\' ) ) { 
                    $cb_main_menu = wp_nav_menu(
                        array(
                            \'echo\'           => FALSE, 
                            \'container_class\' => \'cb-main-menu\',
                            \'theme_location\' => \'main\',                    
                            \'depth\' => 0,                                   
                            \'walker\' => new CB_Walker,                                  
                            \'items_wrap\' => \'<ul class="nav main-nav clearfix sf-menu">%3$s</ul>\',
                            )); 
                }
        ?>

<!-- Holding Wybrzeze menu -->
        <?php  if ( has_nav_menu( \'wybrzeze\' ) ) { 
                    $cb_main_menu = wp_nav_menu(
                        array(
                            \'echo\'           => FALSE, 
                            \'container_class\' => \'cb-main-menu\',
                            \'theme_location\' => \'main\',                    
                            \'depth\' => 0,                                   
                            \'walker\' => new CB_Walker,                                  
                            \'items_wrap\' => \'<ul class="nav main-nav clearfix sf-menu">%3$s</ul>\',
                            )); 
                }
        ?>
如果我理解正确,这就是我必须添加子菜单的地方。在收割台的最末端。php有几个div负责显示“main”菜单:

<nav role="navigation">

         <div id="cb-main-menu" class="wrap clearfix"><?php if ( has_nav_menu( \'main\' ) ) { echo $cb_main_menu; } ?> </div>
                     <div id="cb-main-menu-mob" class="wrap clearfix"><div id="cb-mob-dropdown-main"></div><?php if ( has_nav_menu( \'main\' ) ) {  main_nav(); } ?></div>
现在,我的问题是:是否有可能实现this picture?

有没有办法让第二行菜单只显示选定的类别?

我在考虑使用if/else PHP循环和WP引用<?php is_category( $category ); ?> 但不幸的是,我不知道如何做到这一点,我不想打破主题。。。我将非常感谢您的帮助:)

&更新;解决方案:

幸亏Bindiya Patoliya 我找到了解决方案:

<?php if(is_category(\'teatr-wybrzeze\')) {
wp_nav_menu( array(
\'container_id\' => \'cb-main-menu\',
\'container_class\' => \'wrap clearfix\',
\'theme_location\' => \'rafalmenu\',                    
\'depth\' => 0,                                                                   
\'items_wrap\' => \'<ul class="nav main-nav clearfix sf-menu">%3$s</ul>\',
\'walker\' => new CB_Walker
) );
} ?>
现在效果很好!非常感谢!

3 个回复
最合适的回答,由SO网友:Bindiya Patoliya 整理而成

是的,你可以通过

if(is_category()) {
wp_nav_menu( array(
\'theme_location\' => \'menu-97226\',
\'walker\' => new Menu_Walker_97226()
) );
}
在头文件中调用菜单时。

SO网友:Bindiya Patoliya

你好RafałWyszomirski,

无需创建第二个菜单。您可以在主菜单中创建子菜单页(作为一个类别),然后根据需要自定义子菜单的外观,如水平/垂直。

希望这对你有帮助。

SO网友:Rafał Wyszomirski

&更新;解决方案:

幸亏Bindiya Patoliya 我找到了解决方案:

 <?php if(is_category(\'teatr-wybrzeze\')) {
wp_nav_menu( array(
\'container_id\' => \'cb-main-menu\',
\'container_class\' => \'wrap clearfix\',
\'theme_location\' => \'rafalmenu\',                    
\'depth\' => 0,                                                                   
\'items_wrap\' => \'<ul class="nav main-nav clearfix sf-menu">%3$s</ul>\',
\'walker\' => new CB_Walker
) );
} ?>
我使用与主菜单相同的CSS类,因此它看起来完全相同,它只显示在所选类别中,并且具有不同的内容。现在效果很好!非常感谢你,宾迪亚!

结束

相关推荐

WP_LIST_CATEGORIES,将类添加到具有子项的所有列表项

我正在使用wp_list_categories(); 要显示自定义分类法中所有术语的列表,但我需要为具有子级的列表项设置与不具有子级的列表项不同的样式。有没有一种方法,PHP或jQuery,我可以给所有父元素一个特殊的类?