walker_nav_men PHP8
Question
How do I change the following code so that it works under PHP 8?
<?php
class themeslug_walker_nav_menu extends Walker_Nav_Menu {
// add classes to ul sub-menus
function start_lvl( & $output, $depth = 0, $args = array() ) {
// depth dependent classes
$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
$display_depth = ( $depth + 1 ); // because it counts the first submenu as 0
$classes = array(
'sub-menu',
( $display_depth % 2 ? 'menu-odd' : 'menu-even' ),
( $display_depth >= 2 ? 'sub-sub-menu' : '' ),
'menu-depth-' . $display_depth
);
$class_names = implode( ' ', $classes );
// build html
$output .= "\n" . $indent . '<ul class="children">' . "\n";
}
// add main/sub classes to li's and links
function start_el( & $output, $item, $depth = 0, $args = array() ) {
global $wp_query;
$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
// depth dependent classes
$depth_classes = array(
( $depth == 0 ? 'main-menu-item' : 'sub-menu-item' ),
( $depth >= 2 ? 'sub-sub-menu-item' : '' ),
( $depth % 2 ? 'menu-item-odd' : 'menu-item-even' ),
'menu-item-depth-' . $depth
);
$depth_class_names = esc_attr( implode( ' ', $depth_classes ) );
// passed classes
$classes = empty( $item->classes ) ? array() : ( array )$item->classes;
$class_names = esc_attr( implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ) );
// build html
$output .= $indent . '<li class="' . "more-nav " . $class_names . '">';
// link 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 .= ' class=""';
if ( $depth > 0 )$format="<a%2$s><div class="sub">%3$s%4$s%5$s</div></a>%6$s";
$item_output = sprintf( $format,
$args->before,
$attributes,
$args->link_before,
apply_filters( 'the_title', $item->title, $item->ID ),
$args->link_after,
$args->after
);
// build html
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}
?>
<?php wp_nav_menu( array( 'container' => 'false', 'menu_class' => '', 'items_wrap' => '%3$s', 'theme_location' => 'top', 'walker' => new themeslug_walker_nav_menu ) ); ?>
<?php if ( ( twentyseventeen_is_frontpage() || ( is_home() && is_front_page() ) ) && has_custom_header() ) : ?>
<a href="#content" class="menu-scroll-down"><?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ); ?><span class="screen-reader-text">
<?php _e( 'Scroll down to content', 'twentyseventeen' ); ?>
</span></a>
<?php endif; ?>
I would be grateful for tips
Greetings
Morrow
0
3 weeks
2023-02-27T09:29:08-05:00
2023-02-27T09:29:08-05:00 0 Answers
0 views
0
Leave an answer