用于Mobile布局的WordPress菜单交换

时间:2014-11-10 作者:vega

我想为桌面和手机用户提供两种不同的菜单。

因此,我使用此功能为两个菜单(主菜单、移动菜单)创建了两个位置:

功能。php:

function is_register_my_menus() {
register_nav_menus(
array(
  \'primary\' => __( \'primary\' ),
  \'mobile\' => __( \'mobile\' )  
)
);
}
add_action( \'init\', \'is_register_my_menus\' ); 
到目前为止,一切顺利。我可以创建另一个菜单,去掉一个项目,并将该菜单设置为“移动”。

然后我安装了Wordpress插件PHP浏览器检测,效果很好。我试着根据设备的不同,切换/交换这两个菜单。

标题。php:

<nav id="nav" role="navigation" class="gross">
        <div id="knopf"><a href="#"></a></div>
        <?php if ( is_mobile() ) { wp_nav_menu( array(\'menu\' => \'mobile\' ) ); } else { wp_nav_menu( array(\'menu\' => \'primary\' ) ); }; ?>
    </nav>
不幸的是,无论计算机/桌面或移动设备如何,它始终显示主菜单。我是否在if/else代码中做错了什么?我在帖子中也使用它来交换每个设备的post\\u缩略图,在那里它工作得很好。

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

没有is_mobile() 据我所知,功能。WordPress使用wp_is_mobile() 这可能就是你要找的。所以应该是这样的:

<?php if ( wp_is_mobile() ) { wp_nav_menu( array(\'menu\' => \'mobile\' ) ); } else { wp_nav_menu( array(\'menu\' => \'primary\' ) ); }; ?>

EDIT

在进一步检查您的问题之后,您似乎已经安装了一个插件来为您进行浏览器嗅探。它看起来确实使用is_mobile() 但由于我对这个插件不熟悉,我建议使用普通插件wp_is_mobile() 不使用插件,谁知道该插件可能有什么问题,或者该插件是否与您的安装兼容。

FINAL EDIT

根据OP,结果是菜单名称不匹配。

结束

相关推荐

Custom Menus and taxonomies

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