Ошибка загрузки содержимого страницы с помощью Walker_Nav_Menu

При каждом обновлении страницы страница загружается пошагово, сначала заголовок с основным меню, а затем через 1 секунду страница загружает остальную часть содержимого.

Я использую следующий код, чтобы отобразить мега-меню на моей теме:

wp_nav_menu( array( 'container' => 'div', 'container_class' => 'main-nav', 'fallback_cb' => 'my_fallback_menu', 'theme_location' => 'main-menu', 'walker' => new My_Menu_Walker() // mega menu ) ); 

Ниже приведен код, используемый для My_Menu_Walker () в отдельном файле:

 <?php if ( ! class_exists( 'My_Menu_Walker', false ) ) { class My_Menu_Walker extends Walker_Nav_Menu { // add main/sub classes to li's and links public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $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 id="nav-menu-item-'. $item->ID . '" class="' . $depth_class_names . ' ' . $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="menu-link ' . ( $depth > 0 ? 'sub-menu-link' : 'main-menu-link' ) . '"'; $item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s', $args->before, $attributes, $args->link_before, apply_filters( 'the_title', $item->title, $item->ID ), $args->link_after, $args->after ); // add menu for categories if ( $depth == 0 && $item->object == 'category' ) { $item_output .= '<div class="sub-menu-box">'; } // build html $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } function end_el( &$output, $item, $depth = 0, $args = array(), $current_object_id = 0 ) { global $wp_query; global $post; // build html for menu with categories if ( $depth == 0 && $item->object == 'category' ) { $cat = $item->object_id; ob_start(); ?> <ul class="sub-menu-posts"> <div class="td-mega-ul"> <?php $post_args = array( 'numberposts' => 3, 'offset'=> 0, 'category' => $cat ); $menuposts = get_posts( $post_args ); foreach( $menuposts as $post ) : setup_postdata( $post ); echo '<li class="grid col-340">'; get_template_part( 'parts/mega-menu', get_post_format() ); echo '</li>'; endforeach; wp_reset_postdata(); ?> </div> </ul> <?php $output .= ob_get_clean(); $output .= "</div>\n"; } $output .= "</li>\n"; } // add classes to ul sub-menus public 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="' . $class_names . '">' . "\n"; } } } тем <?php if ( ! class_exists( 'My_Menu_Walker', false ) ) { class My_Menu_Walker extends Walker_Nav_Menu { // add main/sub classes to li's and links public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $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 id="nav-menu-item-'. $item->ID . '" class="' . $depth_class_names . ' ' . $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="menu-link ' . ( $depth > 0 ? 'sub-menu-link' : 'main-menu-link' ) . '"'; $item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s', $args->before, $attributes, $args->link_before, apply_filters( 'the_title', $item->title, $item->ID ), $args->link_after, $args->after ); // add menu for categories if ( $depth == 0 && $item->object == 'category' ) { $item_output .= '<div class="sub-menu-box">'; } // build html $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } function end_el( &$output, $item, $depth = 0, $args = array(), $current_object_id = 0 ) { global $wp_query; global $post; // build html for menu with categories if ( $depth == 0 && $item->object == 'category' ) { $cat = $item->object_id; ob_start(); ?> <ul class="sub-menu-posts"> <div class="td-mega-ul"> <?php $post_args = array( 'numberposts' => 3, 'offset'=> 0, 'category' => $cat ); $menuposts = get_posts( $post_args ); foreach( $menuposts as $post ) : setup_postdata( $post ); echo '<li class="grid col-340">'; get_template_part( 'parts/mega-menu', get_post_format() ); echo '</li>'; endforeach; wp_reset_postdata(); ?> </div> </ul> <?php $output .= ob_get_clean(); $output .= "</div>\n"; } $output .= "</li>\n"; } // add classes to ul sub-menus public 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="' . $class_names . '">' . "\n"; } } } 

И это код части шаблона:

 <div class="td-mega-content"> <article class="post-<?php the_ID(); ?> td-mega-posts"> <?php if ( '' != get_the_post_thumbnail() ) : ?> <div class="mega-post-thumbnail"> <a class="module-image" href="<?php the_permalink(); ?>"> <?php the_post_thumbnail( 'module-1' ); ?> </a> </div> <?php endif; ?> <div class="td-mega-posts-inner"> <h3 class="entry-title"> <a href="<?php the_permalink(); ?>"> <?php echo get_the_title(); ?> </a> </h3> <div class="post-meta"> <?php echo esc_attr( get_the_time('F j, Y') ); ?> </div> </div><?php // end of .td-mega-posts-inner ?> </article> </div><?php // end of .td-mega-content ?> 

Важно: проблема возникает только при использовании 'walker' => new My Menu Walker() в коде wp_nav_menu который показывает меню.

Что может быть неправильным, что вызывает эту страницу загрузки страницы?