如何显示特定的CSS样式wp_nav_menu()

时间:2017-12-27 15:45:45

标签: css wordpress menu

我是wordpress的新手。我有一个自定义菜单,我只想在用户浏览器登陆特定页面时显示特定的菜单项。

wp_nav_menu(array('theme_location'=>'menu-main'));

有没有办法让wp_nav_menu()挂钩只显示具有特定css类项的特定菜单项?

2 个答案:

答案 0 :(得分: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

}

您可以在wp_nav_menu

中添加一个类/ ID

加入这两个想法,你可以:

// 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

答案 1 :(得分:0)

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

如果您想添加到现有功能,请考虑使用body_class过滤器。使用此功能,您可以将css类添加到body元素,然后编写css以更改任何特定页面的菜单显示方式。