【问题标题】:Wordpress : Choose menu in Header.phpWordpress:在 Header.php 中选择菜单
【发布时间】:2019-12-10 20:21:04
【问题描述】:

我有两个菜单,默认插件安装在 Wordpress 二十四:

  • 菜单法语
  • 菜单英文

我有两个模板使用不同的 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 wordpress menu themes


    【解决方案1】:

    添加

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

    见 wordpress:http://codex.wordpress.org/Function_Reference/wp_nav_menu

    【讨论】:

      【解决方案2】:

      您将在 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>
      

      &lt;?php wp_nav_menu( $args_en );?&gt; 将呈现英文菜单。

      &lt;?php wp_nav_menu( $args_fr );?&gt; 将呈现法语菜单。

      当然,因为 $arg_en 包含 'theme_location' =&gt; '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()
      })
      

      【讨论】:

        【解决方案3】:

        在 wordpress 中以特定菜单为目标,例如在 header.php 中,创建一个菜单并将名称复制到那里并粘贴到“项目名称”中

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-14
          • 1970-01-01
          • 1970-01-01
          • 2015-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多