2017-12-27 464 views
1

我真的是新的WordPress的。我有一个自定义菜单,当用户浏览器登录特定页面时,我只想显示特定的菜单项。如何显示特定的CSS样式wp_nav_menu()

wp_nav_menu(阵列( 'theme_location'=> '菜单主'));

有没有办法有wp_nav_menu()挂钩,只显示具有特定CSS类项目的具体菜单项?

+0

没有,没有。然而,研究'wp_nav_menu' - 你会看到你可以*显示多个菜单,这取决于你在哪个页面上,此外,你可以“过滤”菜单,所以使用自定义代码,你可以构建一个过滤器,用于限制在特定情况下显示哪些菜单项。 –

回答

0

考虑在编写自定义函数之前搜索现有的插件。为了您的特定功能,我会使用Page Specific Menu Items插件。

如果你想添加到现有的功能,可以考虑使用body_class过滤器。有了这个功能,你可以在你的body元素中添加一个css类,然后编写css来改变你的菜单在任何特定页面上的显示方式。

1

如果我很好地理解你的问题,是的,有一种方法。你可以使用条件。 PHP if语句。 WordPress允许你查看页面的标题,ID,类别在执行命令之前如

if(is_page(array('about-us', 'contact', 'management')) { 

    //either in about us, or contact, or management page is in view 
    //execute something 

} else { 

    //none of the page about us, contact or management is in view 
    //execute something 

} 

而且你可以在类/ ID添加到wp_nav_menu

所以连接这两个想法,你可以有:

// When Page 42 (ID) is being displayed. 
if (is_page(42)) { 

    wp_nav_menu(array('menu_id' => 'pines', 'menu_class' => 'pnav')); 

} elseif(is_page(array('about-us', 'contact', 'management')) { 

    wp_nav_menu(array('menu_id' => 'bananas', 'menu_class' => 'nav')); 

} else { 

    wp_nav_menu(array('menu_id' => 'main-id', 'menu_class' => 'main-nav')); 

} 

添加了唯一的ID和类后,您可以按照自己想要的方式设置它。 参考https://codex.wordpress.org/Conditional_Tags