Error en el function Walker_Nav_Menu wordpress
-
Estoy intentando poner un menú personalizado con wordpress y estoy usando el Walker_Nav_Menu pero cuando pongo la función me salta un cartel de
Warning: Declaration of BootstrapNavMenuWalker::start_lvl(&$output, $depth) should be compatible with Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = Array) in /www/qkstudiodemo.com/htdocs/camconnection/web/wp-content/themes/camconnection/functions.php on line 212
Por el momento se puede ver bien porque lo desahabilite pero cuando intento ponerlo se ve todo bien pero por encima me salta esa leyenda.
class BootstrapNavMenuWalker extends Walker_Nav_Menu {
function start_lvl( &$output, $depth ) {
$indent = str_repeat( «\t», $depth );
$submenu = ($depth > 0) ? ‘ sub-menu’ : »;
$output .= «\n$indent<ul class=\»dropdown-menu$submenu depth_$depth\»>\n»;
}
function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
$indent = ( $depth ) ? str_repeat( «\t», $depth ) : »;
$li_attributes = »;
$class_names = $value = »;
$classes = empty( $item->classes ) ? array() : (array) $item->classes;// managing divider: add divider class to an element to get a divider before it.
$divider_class_position = array_search(‘divider’, $classes);
if($divider_class_position !== false){
$output .= «<li class=\»divider\»>\n»;
unset($classes[$divider_class_position]);
}$classes[] = ($args->has_children) ? ‘dropdown’ : »;
$classes[] = ($item->current || $item->current_item_ancestor) ? ‘active’ : »;
$classes[] = ‘menu-item-‘ . $item->ID;
if($depth && $args->has_children){
$classes[] = ‘dropdown-submenu’;
}
$class_names = join( ‘ ‘, apply_filters( ‘nav_menu_css_class’, array_filter( $classes ), $item, $args ) );
$class_names = ‘ class=»‘ . esc_attr( $class_names ) . ‘»‘;
$id = apply_filters( ‘nav_menu_item_id’, ‘menu-item-‘. $item->ID, $item, $args );
$id = strlen( $id ) ? ‘ id=»‘ . esc_attr( $id ) . ‘»‘ : »;
$output .= $indent . ‘<li’ . $id . $value . $class_names . $li_attributes . ‘>’;
$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 ) .'»‘ : »;
$attributes .= ($args->has_children) ? ‘ 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 ) . $args->link_after;
$item_output .= ($depth == 0 && $args->has_children) ? ‘ <b class=»caret»></b>‘ : ‘‘;
$item_output .= $args->after;
$output .= apply_filters( ‘walker_nav_menu_start_el’, $item_output, $item, $depth, $args );
}function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
//v($element);
if ( !$element )
return;
$id_field = $this->db_fields[‘id’];
//display this element
if ( is_array( $args[0] ) )
$args[0][‘has_children’] = ! empty( $children_elements[$element->$id_field] );
else if ( is_object( $args[0] ) )
$args[0]->has_children = ! empty( $children_elements[$element->$id_field] );
$cb_args = array_merge( array(&$output, $element, $depth), $args);
call_user_func_array(array(&$this, ‘start_el’), $cb_args);
$id = $element->$id_field;
// descend only when the depth is right and there are childrens for this element
if ( ($max_depth == 0 || $max_depth > $depth+1 ) && isset( $children_elements[$id]) ) {
foreach( $children_elements[ $id ] as $child ){
if ( !isset($newlevel) ) {
$newlevel = true;
//start the child delimiter
$cb_args = array_merge( array(&$output, $depth), $args);
call_user_func_array(array(&$this, ‘start_lvl’), $cb_args);
}
$this->display_element( $child, $children_elements, $max_depth, $depth + 1, $args, $output );
}
unset( $children_elements[ $id ] );
}
if ( isset($newlevel) && $newlevel ){
//end the child delimiter
$cb_args = array_merge( array(&$output, $depth), $args);
call_user_func_array(array(&$this, ‘end_lvl’), $cb_args);
}
//end this element
$cb_args = array_merge( array(&$output, $element, $depth), $args);
call_user_func_array(array(&$this, ‘end_el’), $cb_args);
}
}<?php
$args = array(
‘theme_location’ => ‘principal-menu’,
‘container’ => »,
‘menu_class’ => ‘nav navbar-nav pull-right’,
‘menu_id’ => ‘nav’,
‘walker’ => new BootstrapNavMenuWalker()
);
wp_nav_menu( $args );?>
Este es el código que implemente para usarlo.La página con la que necesito ayuda: [accede para ver el enlace]
- El debate ‘Error en el function Walker_Nav_Menu wordpress’ está cerrado a nuevas respuestas.