WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Update: this was caused by the fact that i didn't have a menu created in the menu page.

I want to add a class to the ul of wp_nav_menu. I tried this code:


$defaults = array(
    'menu_class'      => 'menu',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',

wp_nav_menu( $defaults );


According to wordpress codex changing the menu from 'menu_class' => 'menu', should change the class of the ul, but instead it changes the class of the div wrapping the ul.

<div class="this class is changed"><ul><li class="page_item page-item-2"><a href="http://domain.tld/">Sample Page</a></li></ul></div>

share|improve this question
For 1 nav menu item? – Brad Dalton Mar 1 '14 at 3:19
For all ul in the navigation. – CK13 Mar 1 '14 at 3:48
up vote 0 down vote accepted

menu_class is indeed what changes the ul classe, what's happening there is you didn't set which menu to use here: wp-admin/nav-menus.php?action=locations - which is why it's changing the div instead of the ul.

Once you set it, it'll change the ul. Try it.

share|improve this answer
I figured it out, i didn't add suport for menus in functions.php, once i did and created a menu in the menu pages it worked as it should. – CK13 Mar 1 '14 at 19:38

CK13 is that the full set of arguments you pass in the array? I don't believe you should have the wrapping DIV at as you are not declaring a container there. I will test locally and repost.

share|improve this answer
That's all the code i used. – CK13 Mar 1 '14 at 3:48
This is not so much an answer as a comment. – Pat J Mar 1 '14 at 5:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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