Add a class at specific element in custom Menu Walker

I have customised my menu in wordpress by extending the Nav_Menu_Walker class and now i cannot figure it out how could i add a class at a specific ul element. I have this function which adds classes by depth:

function start_lvl(&$output, $depth) {
 $indent = str_repeat("t", $depth);
 if ($depth >= 1)
    $output .= "n$indent<ul class="subsubmenu">n";
 else
    $output .= "n$indent<ul class="submenu">n";

}

When the $depth is 0 i would like to add a different class at the third element from $depth =0 rather than “submenu”.

Read More

Could you please provide me some suggestions ?

Related posts

Leave a Reply

1 comment

  1. Count the level 0 elements in a static variable in the method and add an extra class if you hit the third. Sample code, not tested:

    function start_lvl(&$output, $depth) {
        static $column = 1;
        $indent = str_repeat("t", $depth);
        if ($depth > 0)
        {
            $output .= "n$indent<ul class='subsubmenu'>n";
        }
        else
        {
            $column += 1;
            $extra = 3 === $column ? ' third-column' : '';
            $output .= "n$indent<ul class='submenu$extra'>n";
        }
    }