Вот более подробная информация о WordPress NavWalker Class
Чтобы добавить Walker в ваше меню, вы должны включить класс Walker в свой код и применить его к меню, передав егоимя-функции в качестве аргумента:
вывод меню навигации для файлов-шаблонов вашей темы
$args = [
'container' => 'ul',
'theme_location' => 'primary-menu',
'menu_class' => 'navbar-nav',
'walker' => new Walker_Texas_Ranger()
];
wp_nav_menu( $args );
Фактический класс nav-walker (в файле functions.php или в другом месте)
class Walker_Texas_Ranger extends Walker {
// Tell Walker where to inherit it's parent and id values
var $db_fields = array(
'parent' => 'menu_item_parent',
'id' => 'db_id'
);
/**
* At the start of each element, output a <li> and <a> tag structure.
*
* Note: Menu objects include url and title properties, so we will use those.
*/
function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
$output .= sprintf( "\n<li><a href='%s'%s>%s</a></li>\n",
$item->url,
( $item->object_id === get_the_ID() ) ? ' class="current"' : '',
$item->title
);
}
}