I was having an issue where my menu was being created using:
wp_nav_menu(array('theme_location' => 'main_menu', 'menu_class' => 'sf-menu''))
The resulting HTML was like this:
<div class='sf-menu'><ul><li...></ul></div>
As you can see, the $menu_class
argument was being applied to the div instead of the ul. And the ul doesn't even have an id attribute despite using the default items_wrap
.
I was having an issue where my menu was being created using:
wp_nav_menu(array('theme_location' => 'main_menu', 'menu_class' => 'sf-menu''))
The resulting HTML was like this:
<div class='sf-menu'><ul><li...></ul></div>
As you can see, the $menu_class
argument was being applied to the div instead of the ul. And the ul doesn't even have an id attribute despite using the default items_wrap
.
The reason this was happening was simple - I had just installed the theme and had not yet associated a menu with the 'main_menu' theme location. Once I had the menu assigned, the markup generated acted as expected.
To assign a menu, go to Appearance > Menus then select the Manage Locations tab. On there you can choose which menu goes with the theme location. Save your changes and the markup should then be correct.
You can try this one.
<?php wp_nav_menu(array(
'theme_location' => 'main_menu',
'container' => 'ul',
'container_class' => 'sf-menu'
));?>