Wordpress:在Header.php中选择菜单

时间:2015-03-03 14:00:56

标签: php wordpress menu themes

我有两个菜单,在Wordpress Twenty Fourteen中安装了默认插件:

  • 菜单法语
  • 菜单英语

我有两个模板使用不同的header.php,具体取决于语言。

我想自定义header.php,以便我可以选择使用哪个菜单。

在header.php中有以下代码:

<nav id="primary-navigation" class="site-navigation primary-navigation"
                                                                  role="navigation">
   <button class="menu-toggle">
        <?php _e( 'Primary Menu', 'twentyfourteen' ); ?>
   </button>
   <a class="screen-reader-text skip-link" href="#content">
        <?php _e( 'Skip to content', 'twentyfourteen' ); ?>
   </a>
   <?php wp_nav_menu( array('theme_location'=>'primary','menu_class'=>'nav-menu' ));?>
</nav>

我想定位 - 菜单英语 -

我不知道要添加什么。

4 个答案:

答案 0 :(得分:1)

您可以在PHP中使用以下代码。

<?php

    $args_en = array(
        'theme_location'  => 'English Menu',
        'menu_class'      => 'menu',
        'menu_id'         => 'en_menu'
    );

    $args_fr = array(
        'theme_location'  => 'French Menu',
        'menu_class'      => 'menu',
        'menu_id'         => 'fr_menu'
    );

?>

<nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
   <button id="switch_menu" class="menu-toggle">
        <?php _e( 'Primary Menu', 'twentyfourteen' ); ?>
   </button>
   <a class="screen-reader-text skip-link" href="#content">
        <?php _e( 'Skip to content', 'twentyfourteen' ); ?>
   </a>

   <?php wp_nav_menu( $args_en );?>
   <?php wp_nav_menu( $args_fr );?>

</nav>

<?php wp_nav_menu( $args_en );?>将呈现英文菜单。

<?php wp_nav_menu( $args_fr );?>将呈现法语菜单。

当然,因为$ arg_en包含'theme_location' => 'english_menu',你将在functions.php文件中注册一个菜单,如下所示:

add_action('init','My_Menus');
function My_Menus(){
    register_nav_menus(
        array(
            'English Menu' => __('My English Menu'),
            'French Menu' => __('My French Menu'),
        )
    );
};

然后使用javascript,您可以设置要显示的默认菜单。另一个将被隐藏。

假设您使用的是jquery,这是您需要使用的代码:

var fr_menu = $('#fr_menu'), en_menu = $('#en_menu');
en_menu.toggle(true); //shows english menu by default
fr_menu.toggle(false); //hides english menu by default

$('#switch_menu').on('click',function(){
    en_menu.toggle()
    fr_menu.toggle()
})

答案 1 :(得分:0)

添加

<?php wp_nav_menu( array('menu' => 'Project Nav' )); ?>

请参阅wordpress:http://codex.wordpress.org/Function_Reference/wp_nav_menu

答案 2 :(得分:0)

以wordpress中的特定菜单为目标,例如header.php,创建菜单并复制名称,然后粘贴“项目名称”

wp_nav_menu( array(
    'menu' => 'Project Nav'
) );

答案 3 :(得分:0)

谢谢。几年后,正是我所需要的