Добавить статический элемент в wp_nav_menu

Я пытаюсь добавить статический элемент меню в WordPress Menu. Я использую для этого фильтр `wp_nav_menu_items 'в functions.php. Он работает, но не помещается в контейнер контейнера меню.

function add_nav_menu_items( $items , $args ) { ?> <ul> <li><a href="#">PRODUCTS</a> <ul> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Sci-Fi')));?>">SCI-FI</a> <ul> <?php query_posts( array ('post_type'=>'scifi','showposts'=>-1,'order'=>'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Drama')));?>">Drama</a> <ul> <?php query_posts( array ('post_type'=>'drama','showposts'=>-1,'order'=>'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Horror')));?>">HORROR</a> <ul> <?php query_posts( array ('post_type'=>'horror','showposts'=>-1,'order'=> 'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> </ul> </li> </ul> <?php return $items;} add_filter( 'wp_nav_menu_items', 'add_nav_menu_items',10,2); 

Когда я помещаю код firebug в онлайн-шоу,

 <div id="navigation_top"> <div id="navmenu_top"> <ul> **-->> This is my static menu** <li> </ul> <ul id="menu-menu-1" class="menu-container"> **-->> This is WP_nav_menu** <li class="type menu-item-object-page menu-item-587"> <li class="type menu-item-object-page menu-item-122"> <li class="type menu-item-object-page menu-item-121"> **I want my menu appear here ** </ul> </div> </div> 

В любом случае я могу это сделать ???

Спасибо за любой совет …

Причина, по которой открывается ваше меню ПРОДУКТ, заключается в том, что вы эхом отсылаете ее на страницу как часть функции фильтра. Ожидание с фильтрами состоит в том, что ваша функция получает аргумент, $items в этом случае изменяет его, а затем возвращает его для использования в основном коде.

Чтобы не переписывать код, генерирующий меню ПРОДУКТЫ, мы будем использовать выходной буфер:

 add_filter( 'wp_nav_menu_items', 'add_nav_menu_items', 10, 2 ); function add_nav_menu_items( $items, $args ) { ob_start(); // start the output buffer ?> <ul> <li><a href="#">PRODUCTS</a> <ul> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Sci-Fi')));?>">SCI-FI</a> <ul> <?php query_posts( array ('post_type'=>'scifi','showposts'=>-1,'order'=>'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Drama')));?>">Drama</a> <ul> <?php query_posts( array ('post_type'=>'drama','showposts'=>-1,'order'=>'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> <li><a href="<?php echo esc_url(get_category_link(get_cat_ID('Horror')));?>">HORROR</a> <ul> <?php query_posts( array ('post_type'=>'horror','showposts'=>-1,'order'=> 'ASC') ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul> </li> </ul> </li> </ul> <?php $products = ob_get_clean(); // store all output from above return $items . $products; // add stored output to end of $items and return } 

Вместо этого жестко закодируйте контейнер, удалите его следующим образом:

 $args = array( 'theme_location' => 'XXX', 'container' => false ) 

и жестко закодируйте его вокруг wp_nav_menu, не забывая добавлять свой статический раздел туда, где вам это нужно:

 echo '<ul>'; echo '<li><a href="http://...">Static Link</a></li>'; wp_nav_menu($args); echo '</ul>'; 

Вы можете использовать эту информацию для создания своего навигатора, как хотите. В принципе, удаление контейнера заставит его просто выплюнуть кучу элементов LI с вашими ссылками, поэтому поместите wp_nav_menu туда, где вам нужно, и просто скопируйте его.