Skip to content

Instantly share code, notes, and snippets.

@sgelob
Created June 5, 2015 13:30
Show Gist options
  • Save sgelob/56ca6cfc5560843ef734 to your computer and use it in GitHub Desktop.
Save sgelob/56ca6cfc5560843ef734 to your computer and use it in GitHub Desktop.
class My_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_lvl(&$output, $depth) {
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"sub-menu dropdown-menu\">\n";
}
function start_el(&$output, $item, $depth, $args) {
// назначаем классы li-элементу и выводим его
$class_names = join( ' ', $item->classes );
$class_names = ' class="' .esc_attr( $class_names ). '"';
$output.= '<li id="menu-item-' . $item->ID . '"' .$class_names. '>';
// назначаем атрибуты a-элементу
if(!empty($item->url)){
$attributes = ' href="' .esc_attr($item->url). '"';
}else{
$attributes = ' data-toggle="dropdown"';
}
$item_output = $args->before;
// проверяем, на какой странице мы находимся
$current_url = (is_ssl()?'https://':'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$item_url = esc_attr( $item->url );
$item_output.= '<a'. $attributes .'>'.$item->title.'</a>';
// заканчиваем вывод элемента
$item_output.= $args->after;
$output.= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}
//вызываем через
wp_nav_menu( [
'menu' => 'common-menu',
'container' => false,
'menu_class' => 'nav navbar-nav navbar-right',
'walker' => new My_Walker_Nav_Menu(),
] );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment