Bootstrap v5 wp-bootstrap-navwalker barra de navegación desplegable no funciona

2 minutos de lectura

Yo uso Bootstrap v5 y [wp-bootstrap-navwalker][1]

en función.php

<?php
  require_once('class-wp-bootstrap-navwalker.php');
  function main_menu(){
    wp_nav_menu(array(
      'theme_location'    => 'main-menu',
      'menu_class'        => 'nav navbar-nav',
      'depth'             => 2,
      'container'         => 'div',
      'container_class'   => 'collapse navbar-collapse',
      'container_id'      => 'navbarSupportedContent',
      'fallback_cb'       => 'WP_Bootstrap_Navwalker::fallback',
      'walker'            => new WP_Bootstrap_Navwalker(),
    ));
  }
?>

en encabezado.php

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <?php main_menu() ?>
  </div>
</nav>

el menú desplegable no funciona
[1]: https://github.com/wp-bootstrap/wp-bootstrap-navwalker

  • Questions which are too broad, unclear, incomplete or primarily opinion-based quizás cerrado por la comunidad hasta que se mejoren.

    – amarinediary

    3 de enero de 2021 a las 5:00

  • ¿Qué no funciona? ¿Al pasar el mouse abre el submenú? ¿Al hacer clic en abrir el submenú? ¿No hay ningún menú en absoluto? Proporcione más detalles.

    – Howard E.

    3 de enero de 2021 a las 19:13

  • @HowardE el menú desplegable no funciona en bootstrap 5 el menú ` función register_all_menu() { register_nav_menus(array( ‘top_menu’ => ‘القائمة العلوية’, ‘main-menu’ => ‘القائمة الرئيسية’, ‘ => ‘القائمة السفلية’, )); } ` También reviso este artículo pero tampoco funciona [github.com/AlexWebLab/bootstrap-5-wordpress-navbar-walker]

    – Nazar Kardán

    4 de enero de 2021 a las 19:53


  • puedes usar esto navegante y en la linea 214 cambio por esto: if ( $this->has_children && 0 === $depth ) { $atts['href'] = '#'; $atts['data-bs-toggle'] = 'dropdown'; $atts['aria-haspopup'] = 'true'; $atts['aria-expanded'] = 'false'; $atts['class'] = 'dropdown-toggle nav-link'; $atts['id'] = 'navbarDropdown'; }

    – Nazar Kardán

    10 de enero de 2021 a las 22:14


  • cambiando a $atts['data-bs-toggle'] ¡trabajó para mi!

    – ben.kaminski

    24 de febrero de 2021 a las 21:27

avatar de usuario
Diestro

Bootstrap 5.0.0 [ 2021 ]

Probado y funcionando ✔

Puede utilizar esta función. esto se actualizará data-toggle a data-bs-toggle.

add_filter( 'nav_menu_link_attributes', 'bootstrap5_dropdown_fix' );
function bootstrap5_dropdown_fix( $atts ) {
     if ( array_key_exists( 'data-toggle', $atts ) ) {
         unset( $atts['data-toggle'] );
         $atts['data-bs-toggle'] = 'dropdown';
     }
     return $atts;
}

Fuente: https://github.com/wp-bootstrap/wp-bootstrap-navwalker/issues/499

Arreglando el menú desplegable del icono de la hamburguesa

OP ya está usando los nuevos elementos de la barra de navegación. Pero si alguno de ustedes usa el anterior y actualizó solo las funciones de arriba, siga los pasos a continuación.

En responsivo, el ícono de la hamburguesa no funcionará si está usando las clases antiguas. También tienes que actualizar tu desde data-toggle a data-bs-toggle

<button ... data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" ...>
   <!--span-->
</button>

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad