Variables within wp_nav_menu

时间:2018-08-03 作者:Sam

我有一个左右wp_nav_menu 在前端显示为一个无序列表:

<nav>
  <ul>
    <?php
      // Left menu
      wp_nav_menu( array(
        \'theme_location\'  => \'left\',
        \'container\' => false,
        \'menu_class\' => false,
        \'items_wrap\' => \'%3$s\' // Removes <ul> and wraps <li>
      ) );
      // Right menu
      wp_nav_menu( array(
        \'theme_location\'  => \'right\',
        \'container\' => false,
        \'menu_class\' => false,
        \'items_wrap\' => \'%3$s\' // Removes <ul> and wraps <li>
      ) );
    ?>
  </ul>
</nav>
在这里重复代码时,我创建了一个名为$menu, 像这样:

<nav>
  <ul>
    <?php
      // Left
      $menu = array(\'container\' => false, \'menu_class\' => false, \'items_wrap\' => \'%3$s\');
      wp_nav_menu( array(
        \'theme_location\'  => \'left\',
        $menu
      ) );
      // Right
      wp_nav_menu( array(
        \'theme_location\'  => \'right\',
        $menu
      ) );
    ?>
  </ul>
</nav>
这是在数组中调用变量的正确方法还是有更有效的方法?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

wp_nav_menu() 与此无关。不管怎样,数组都是数组。但不行,这行不通。它将生成如下数组:

array(
    \'theme_location\'  => \'right\',
    array(
        \'container\' => false,
        \'menu_class\' => false,
        \'items_wrap\' => \'%3$s\' // Removes <ul> and wraps <li>
    ),
)
要获取单个数组中的值,需要将数组与array_merge():

// Left
$menu = array(\'container\' => false, \'menu_class\' => false, \'items_wrap\' => \'%3$s\');
wp_nav_menu( array_merge( 
    array( \'theme_location\'  => \'left\' ),
    $menu
) );
// Right
wp_nav_menu( array_merge( 
    array( \'theme_location\'  => \'right\' ),
    $menu
) );

结束

相关推荐

Custom Menus and taxonomies

好的,我刚开始使用WordPress,不是很好,我有一个菜单问题,我真的需要一些帮助。我在一个网站上工作,它有多个地点,并非所有地点都销售相同的产品。所有位置都是具有父结构的页面。俄亥俄州-联系我们-关于我们-产品等。。。西弗吉尼亚州-联系我们-关于我们-产品等。。。宾夕法尼亚州-联系我们-关于我们-产品等我掌握了自定义页面模板的窍门,并为其添加了自定义菜单(因此,我所有的Ohio页面都使用了我制作的自定义Ohio模板,并包含了自定义Ohio菜单)。我正在使用帖子创建产品信息页面,并使用以下方式显示它们: