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.

2 Answers 2


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'
  • 1
    Could you explain why do you think this will help. This is a Q&A site, so the answers should help understand the problem and be helpful for others. Feb 19, 2019 at 12:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.