Estoy haciendo mi primer andador personalizado para crear un menú de acordeón. Para empezar utilicé este ejemplo: http://bitacre.com/2025/custom-nav-menu-walker-for-wordpress-themes
Hay dos funciones Primero start_lvl y luego start_el.
En start_el, el ID se implementa mediante $ item-> ID. ¿Alguien sabe cómo puedo hacer esto en start_lvl también? Necesito darle una identificación (a la navegación de nivel inferior circundante) para que pueda provocar el colapso en el menú de acordeón.
Lo que intento generar es algo como esto:
<a href="#collapse2">Titel 2</a>
<ul id="collapse2">Lower Level Menu 2</ul>
<a href="#collapse3">Titel 3</a>
<ul id="collapse3">Lower Level Menu 3</ul>
Mi código para la función start_lvl:
// add id's and classes to ul sub-menus
function start_lvl( &$output, $depth, $item ) {
// depth dependent classes
$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
$display_depth = ( $depth + 1); // because it counts the first submenu as 0
$pgid = ; // How to get ID in here??
$classes = array(
'sub-menu',
( $display_depth == 1 ? 'accordion-body collapse' : '' ),
( $display_depth % 2 ? 'menu-odd' : 'menu-even' ),
( $display_depth >=2 ? 'sub-sub-menu' : '' ),
'menu-depth-' . $display_depth
);
$ids = array(
'collapse' . $pgid
);
$class_names = implode( ' ', $classes );
$id_name = implode( ' ', $ids );
// build html
$output .= "\n" . $indent . '<ul id="' . $id_name . '" class="' . $class_names . '">' . "\n";
}