我是wordpress的新手。我有一个自定义菜单,我只想在用户浏览器登陆特定页面时显示特定的菜单项。
wp_nav_menu(array('theme_location'=>'menu-main'));
有没有办法让wp_nav_menu()挂钩只显示具有特定css类项的特定菜单项?
答案 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
加入这两个想法,你可以:
// 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以更改任何特定页面的菜单显示方式。