как условно добавить атрибуты в функцию start_lvl ()?

Я хочу добавить идентификатор родительского элемента в контейнер div дочерних элементов. Как я могу это сделать? Вот мой код:

<?php public function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat( "\t", $depth ); $output .= "\n$indent<ul id=\"Here I want to tell wordpress to put the ID of parent element\" class=\"collapse\">\n"; } 

Для этого вам не нужны данные, необходимые для start_lvl() . Эти данные доступны в start_el() в переменной $item , поэтому вам придется приготовить способ передать эти данные:

 class my_extended_walker extends Walker_Nav_Menu { var $prnt = 0; var $pdepth = false; public function start_lvl( &$output, $depth = 0, $args = array() ) { $id = ''; if (!empty($this->prnt)) { $id = 'id="prnt-'.$this->prnt.'"'; } $indent = str_repeat( "\t", $depth ); $output .= "\n$indent<ul $id class=\"collapse\">\n"; } public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { if ($this->pdepth !== $depth) { $this->prnt = $item->ID; $this->pdepth = $depth; } else { $this->prnt = $this->pdepth = 0; } parent::start_el($output,$item,$depth,$args,$id); } } // testing wp_nav_menu( array( 'walker'=>new my_extended_walker(), 'menu' => 'mymenu' ) );