Intereting Posts
Роли пользователей: как скрыть плагин от показа в WP-Admin? Нужна помощь, чтобы изображение моей домашней страницы было меньше моего сообщения Результат запроса wordpress, показывающий пробел Пользовательские правила постоянных ссылок не соответствуют и не теряют запрос var в процессе Передать $ item-> description в start_lvl WordPress Применить фильтр в плагине вызывает 500 внутренних ошибок Каков правильный способ использования таблицы стилей php в теме WordPress? Как вызвать функции плагина в настраиваемом шаблоне Связанные записи в подкатегории с надписями Может ли Ajax Action зацепиться за wp-hook интеграция с загрузкой метаданных mp3 audio: могу ли я автопопуляцией заголовка, заголовка, описания из тегов id3? Проверьте, если на последней странице разбитого на страницу страницы используется wp_link_pages Использование функции wordpress для извлечения данных Сообщение о предупреждении по электронной почте или телефону (сообщение) Подменю вызывает проблему на определенной странице блога

Добавить статический элемент в 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> 

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

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

Solutions Collecting From Web of "Добавить статический элемент в wp_nav_menu"

Причина, по которой открывается ваше меню ПРОДУКТ, заключается в том, что вы эхом отсылаете ее на страницу как часть функции фильтра. Ожидание с фильтрами состоит в том, что ваша функция получает аргумент, $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 туда, где вам нужно, и просто скопируйте его.