我使用这个函数在移动设备上将一个项目添加到我的主导航中,但它将该项目添加到我的所有导航中,而不仅仅是主导航。如何或在哪里添加参数来指定哪个导航正在获取add_last_nav_item()
if ( wp_is_mobile() ) {
function add_last_nav_item($items) {
return $items .= '<li class="text-center"><a href="#myModal" role="button" data-toggle="modal">TEST</a></li>';
}
add_filter('wp_nav_menu_items','add_last_nav_item');
}
您可以检查传递给wp_nav_menu_items
过滤器的args
:
if ( wp_is_mobile() ) {
function add_last_nav_item($items, $args) {
// Check the menu
if ( $args->theme_location == 'your-menu-here' ) {
return $items .= '<li class="text-center"><a href="#myModal" role="button" data-toggle="modal">TEST</a></li>';
}
// Returns the nav items if the condition isn't met.
return $items;
}
add_filter('wp_nav_menu_items','add_last_nav_item', 10, 2);
}
这里是关于wp_nav_menu_items
的文档,这里是传递给过滤器的$args
文档的链接:wp_nav_menu
顺便说一句,wp_is_mobile()
并不是最好的检查用户是否在移动设备上。你可以考虑将菜单项添加到你想要的WP管理区域的菜单中,然后添加一个class
将其隐藏在桌面上。