Это старый вопрос, но я наткнулся на ту же проблему и решил ее с помощью пользовательского Уокера.
Сначала ходок добавляет разделитель после каждого <li>
на верхнем уровне:
class Main_Menu_Walker extends Walker_Nav_Menu{
function end_el( &$output, $item, $depth = 0, $args = array() ) {
$output .= "</li>\n";
if ($depth == 0)
$output .="<li class='separator'>|</li>\n";
}
}
Тогда вы можете использовать li:last-child
и скрыть последний разделитель или использовать фильтр и удалить его, если вам нужна поддержка ie7. Вот мой фильтр:
function menu_remove_last_separator($items){
$separator = "<li class='separator'>|</li>";
$pos = strrpos($items, $separator);
if ($pos)
$items = substr_replace($items, '', $pos, strlen($separator));
return $items;
}
add_filter( 'wp_nav_menu_items','menu_remove_last_separator');
Теперь вы должны использовать свой ходунок как и аргумент для wp_nav_menu
:
wp_nav_menu(array(
'theme_location' => 'navigation',
'container' => false,
'menu_class' => 'inline',
'walker' => new main_menu_walker()
)
);