¿Estás buscando una forma de crear un menú de navegación usando Bootstrap? Este snippet modifica la navegación walker para utilizar el menú desplegable CSS y JavaScript.
Instrucciones:
- Añade este código al archivo functions.php de tu tema o en un plugin específico del sitio.
- Asegúrese de incluir Bootstrap desplegable Javascript y CSS.
<?php // Menu output mods class description_walker extends Walker_Nav_Menu { function start_el(&$output, $item, $depth, $args) { global $wp_query; $indent = ( $depth ) ? str_repeat( "t", $depth ) : ''; $class_names = $value = ''; // If the item has children, add the dropdown class for bootstrap if ( $args->has_children ) { $class_names = "dropdown "; } $classes = empty( $item->classes ) ? array() : (array) $item->classes; $class_names .= join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); $class_names = ' class="'. esc_attr( $class_names ) . '"'; $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>'; $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; // if the item has children add these two attributes to the anchor tag if ( $args->has_children ) { $attributes .= 'class="dropdown-toggle" data-toggle="dropdown"'; } $item_output = $args->before; $item_output .= '<a'. $attributes .'>'; $item_output .= $args->link_before .apply_filters( 'the_title', $item->title, $item->ID ); $item_output .= $args->link_after; // if the item has children add the caret just before closing the anchor tag if ( $args->has_children ) { $item_output .= '<b class="caret"></b></a>'; } else{ $item_output .= '</a>'; } $item_output .= $args->after; $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } function start_lvl(&$output, $depth) { $indent = str_repeat("t", $depth); $output .= "n$indent<ul class="dropdown-menu">n"; } function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) { $id_field = $this->db_fields['id']; if ( is_object( $args[0] ) ) { $args[0]->has_children = ! empty( $children_elements[$element->$id_field] ); } return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output ); } } ?>
Nota: Si es la primera vez que añade fragmentos de código en WordPress, consulte nuestra guía sobre cómo copiar / pegar correctamente fragmentos de código en WordPress, para no romper accidentalmente su sitio.
Si te ha gustado este fragmento de código, por favor, considere revisar nuestros otros artículos en el sitio como: 9 Mejores Herramientas SEO para Aumentar el Tráfico de su Sitio Web, ¡RÁPIDO!
Comentarios Deja una respuesta