Você está procurando uma maneira de criar um menu de navegação usando o Bootstrap? Este snippet modifica a navegação do walker para usar o menu suspenso CSS e JavaScript.
Instruções:
- Adicione esse código ao arquivo functions.php do seu tema ou em um plug-in específico do site.
- Certifique-se de incluir o Javascript e o CSS do dropdown do Bootstrap.
<?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 ); } } ?>
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar/colar corretamente trechos de código no WordPress, para não danificar acidentalmente seu site.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 9 melhores ferramentas de SEO para aumentar o tráfego do seu site, RAPIDAMENTE!
Comentários Deixe uma resposta