Wordpress:在Header.php中选择菜单


Wordpress : Choose menu in Header.php

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

  • 菜单法语
  • 菜单英语

根据语言的不同,我有两个使用不同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>

我想瞄准-菜单英语-

我不知道该添加什么。

添加

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

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

您将在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()
})

以wordpress中的特定菜单为目标,例如在header.php中,创建一个菜单并复制其名称并粘贴到"项目名称"中

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