wp_nav_menu добавить некоторый элемент в контейнер

Я попытался подключить wp_nav_menu_args чтобы получить идентификатор для навигационного меню. Я попытался добавить элемент, используя javascript в меню контейнера. Но я никогда не получаю идентификатор для меню.

Как добавить элемент в контейнер меню навигации из:

 <nav id="my-menu"><ul><li>.....<li></ul></nav> 

чтобы:

 <nav id="my-menu"><div class="additional"></div><ul><li>.....<li></ul></nav> 

Solutions Collecting From Web of "wp_nav_menu добавить некоторый элемент в контейнер"

Это довольно просто, если у вас есть доступ к файлам php.

В шаблоне, который генерирует меню, измените вызов wp_nav_menu, чтобы указать container = FALSE , и предоставить контейнер и дополнительный div вручную в окружающем HTML.

Не зная ваш код заранее, одним из способов было бы изменить его следующим образом:

 <nav id="my-menu"><div class="additional"></div> <?php // Replicate the args from the original code for the most part $args = array( 'theme_location' => 'primary', // Or whatever the original was 'container' => FALSE, // This tells it to not put a container around it 'echo' => TRUE, // again, whatever original was // .. any other args from original code ... ); wp_nav_menu($args); ?> </nav> 

EDIT: зная, что меню необходимо изменить при генерации, тогда ответ немного изменится:

Вам необходимо создать пользовательский ходок

Основы ниже. Измените в соответствии с вашими потребностями, обратитесь к статье Уолкера выше:

 class Custom_Walker_Nav_Menu extends Walker_Nav_Menu { function start_el ( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { // Copy all the start_el code from source, and modify } function end_el( &$output, $item, $depth = 0, $args = array() ) { // Copy all the end_el code from source, and modify } } 

Затем в файлах темы вы можете вызвать wp_nav_menu следующим образом:

 wp_nav_menu(array( 'theme_location' => 'main', 'container' => false, 'menu_id' => 'nav', 'depth' => 1, // This one is the important part: 'walker' => new Custom_Walker_Nav_Menu ));