Intereting Posts
электронная почта не работает из WordPress на Azure В конкретном блоге тема K2 не имеет текстового виджета Флажок не проверяется, conten код highiglight не работает комментарий Как добавить нескольких существующих пользователей на многосайтовый сайт? Пользователи устанавливают пароли, но не могут войти в систему Сохранение пользовательских полей для изделий с вариациями Пользовательская таксономия не отображается Персонализированный URL-адрес для незарегистрированных в WordPress как я могу добавлять сообщения-страницы, пока сообщения не загружаются в постоянные ссылки Столбец столбцов столбцов администратора не работает для пользовательского типа сообщения Добавление параметра метки / фильтра в мой короткий код Не удается получить текст для обертывания изображения Имя родительского меню доступа Walker_Nav_menu Скажите WP, чтобы использовать определенный файл шаблона в сообщениях

wp_nav_menu добавить что-то перед закрытием контейнера и после последнего элемента списка

Я искал способ жесткого кода <div> перед закрывающим тегом контейнера определенного меню:

 $footer_nav = array( 'menu' => 'footer-menu', 'menu_class' => 'foobar', 'container' => 'ul', 'theme_location' => 'footer', 'menu_id' => 'footer_menu', 'echo' => true, 'depth' => 1, ); wp_nav_menu( $footer_nav ); 

Однако, когда я пытаюсь добавить:

 'after' => '<div class="foo">bar</div>', 

он добавляет его после каждого элемента списка. Когда я исследовал решение, с которым я столкнулся, я хочу удалить последний после wp_nav_menu и WordPress Functions – Как использовать функцию Replace String. добавить код, но когда я попробую:

 function foobar_the_menu($items,$args) { if ($args->theme_location == 'footer') { $footer_pattern = '</li></ul>'; $footer_replacement = '</li><div class="foo">bar</div></ul>'; return substr_replace( $footer_pattern, $footer_replacement, $items, 1 ); } } add_filter( 'wp_nav_menu', 'foobar_the_menu', 10, 2 ); 

Он удаляет все меню. После ссылки на несколько других вопросов я видел wp_nav_menu_items и preg_replace но я не уверен, что правильный подход к таргетингу определенного меню, чтобы жестко закодировать div, поскольку вы не можете изменить это в массиве меню?

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

Я думаю, вы можете использовать:

 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s <div class="foo">bar</div> </ul>', 

как аргумент wp_nav_menu() .

Мы используем эту часть функции wp_nav_menu() :

 $nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items ); 

где аргумент items_wrap содержит следующие спецификаторы sprintf :

  • %1$s для соответствия идентификатору обертки
  • %2$s для соответствия классу wrap
  • %3$s для соответствия сформированному HTML для элементов .