一段时间以来,我一直在试图找到一个体面的问题解决方案。在我正在构建的主题中,我有一个顶部的“管理栏”菜单和一些联系人链接,下面是我的“徽标区域”和一个主菜单。
我想在mobile view中将这些菜单合并为一个菜单,但在合并时仍对每个单独的菜单保持某种形式的控制(每个菜单中的字体大小不同,等等)。
当然,我可以构建第四个菜单,其中包含我只需要在移动视图中显示的所有链接,并隐藏我的常规菜单,但这真的是实现此场景的最佳方式吗?
这是我的完整标题标记:
<header id="masthead" class="site-header" role="banner">
<?php if ( has_nav_menu( \'admin\' ) ) : ?>
<nav id="top-nav" class="top-bar menues" role="navigation">
<?php wp_nav_menu( array( \'theme_location\' => \'admin\' ) ); ?>
</nav><!-- #top-nav -->
<?php endif; ?>
<div class="site-branding wrap">
<figure class="site-logo">
<a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home">
<img class="inject-me" src="<?php echo esc_url( get_template_directory_uri() ); ?>/icons/logo.svg" alt="logo">
</a>
</figure><!-- .site-logo -->
</div><!-- .site-branding -->
<?php if ( has_nav_menu( \'primary\' ) ) : ?>
<nav id="site-navigation" class="main-navigation menues" role="navigation">
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><?php esc_html_e( \'Menu\', \'testsite\' ); ?></button>
<?php wp_nav_menu( array( \'theme_location\' => \'primary\', \'menu_id\' => \'primary-menu\', \'menu_class\' => \'nav-menu\' ) ); ?>
</nav><!-- #site-navigation -->
<?php endif; ?>
</header><!-- #masthead -->
我看过一些使用jquery的代码提示?将一个菜单克隆到另一个菜单,但决不克隆任何特定于WordPress的菜单。我试图实现的结果是,在mobile view中,沿着主菜单下的“管理栏”添加标签,这样您就可以得到一长串链接。
有人有类似的问题吗?
SO网友:AstralProgrammer
我也有同样的问题。我选择的解决方案是“合并”菜单,将它们放在单个div包装器下,但将它们放在单独的div类上。
类似这样:
<div class="menu-wrapper">
<div class="menu1">
<?php
wp_nav_menu( array(
\'theme_location\' => \'menu-1\',
\'menu_id\' => \'top-menu\',
) );
?>
</div>
<div class="menu2">
<?php
wp_nav_menu( array(
\'theme_location\' => \'menu-2\',
\'menu_id\' => \'main-menu\',
) );
?>
</div>
</div>
如果要“合并”实际菜单对象,请尝试通过将菜单项放置在变量上
wp_get_nav_menu_items()
然后
array_merge($menu1, $menu2)
. 至于对元素的控制,您可以在使用合并列表创建新菜单HTML时添加标识符。
我不确定这是否是你正在寻找的答案,也不确定这是否是最好的方法。希望有帮助。