Looking at your rendered output:
<div class="menu sf-menu"><ul><li class="page_item page-item-2 current_page_item">...
It appears that 'sf-menu'
got appended as a class to the menu container, rather than to the menu itself.
The wp_nav_menu()
function has two separate parameters:
menu_class
: CSS class applied to the menu list<ul>
menu tagcontainer_class
: CSS class applied to the element tag that contains the menu (defaults to<div>
)
So, if you use:
wp_nav_menu( array(
'theme_location' => 'primary',
'container_class' => 'menu-container-class',
'menu_class' => 'menu-ul-class'
) );
The rendered output should look like:
<div class="menu menu-container-class"><ul class="menu-ul-class"><li class="page_item page-item-2 current_page_item">...
So, it appears that you’ve used container_class
instead of menu_class
in your wp_nav_menu()
call.
Edit
Replace this:
<div class="menudiv">
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menudiv' => 'menu sf-menu' ) ); ?>
</div>
…with this:
<?php
wp_nav_menu( array(
'theme_location' => 'primary',
'container_class' => 'menudiv',
'menu_class' => 'sf-menu'
) );
?>
Edit 2
Okay, I think I see what’s happening: you don’t have a custom menu assigned to the 'primary'
Template Location, which means that the default fallback menu (wp_page_menu()
) is being output. When that happens, 'menu_class'
gets assigned to a <div>
that contains the wp_page_menu()
output, instead of to the <ul>
.
You can tell that the default menu callback is being output, because of the CSS classes generated in your menu:
li class="page_item page-item-2 current_page_item"
If this were an actual, custom menu in this location, those classes would include 'menu-item'
, instead of 'page_item'
. For reference, compare the CSS classes output by wp_nav_menu()
with the CSS classes output by wp_page_menu()
.
Based on our chat conversation, the problem is that you’re registering a Theme Location main
in register_nav_menus()
, but attempting to call a Theme Location primary
in wp_nav_menu()
. Easy fix, change 'theme_location' => 'primary'
to 'theme_location' => 'main'
in wp_nav_menu()
:
<?php
wp_nav_menu( array(
'theme_location' => 'main',
'container_class' => 'menudiv',
'menu_class' => 'sf-menu'
) );
?>