Intereting Posts
Как использовать get_option () без фильтра? Как использовать control_callback при создании виджета через functions.php или плагин? контактная форма-7 выпадающих списков, не заполняющих базу данных Скрипт, который получает первый тег сообщения и запрашивает все другие сообщения с тем же тегом Смещение WP_query, похоже, подсчитывает нагрузку на пост-AJAX больше Запросить не показывать meta_value 100? Удаление кнопок из редактора html get_queried_object () возвращает значение null в архиве post date wp_set_object_terms не работает внутри цикла Поиск результатов '0' возвращает результаты WP_Query наиболее просматриваемые сообщения в нескольких типах сообщений за последние 30 дней, исключая конкретный таксономический термин Как отображать определенные данные из таблицы настраиваемых баз данных в WordPress как установить bootstrap на двадцать четыре темы Как изменить атрибут title "Просмотреть все сообщения в категории" Настройки плагина WP

Измените выход wp_nav_menu очень определенным образом?

Я пытаюсь получить wp_nav_menu для вывода чего-то вроде этого:

<div id="topMenu" class="spanningMenu noPrint"> <ul> <li class="topMenuDivider"></li> <li><a href="#">Home</a></li> <li class="topMenuDivider">|</li> <li><a href="#>Contact Us</a></li> <li class="topMenuDivider">|</li> <li><a href="#>Services</a></li> <li class="topMenuDivider"></li> </ul> </div> 

Я рядом, но я не могу туда добраться. Это то, что я сделал до сих пор, и вывод, который я получаю:

Код:

  <?php $defaults = array( 'theme_location' => 'Primary Menu', 'menu' => 'Primary Menu', 'container' => 'div', 'container_class' => 'spanningMenu noPrint', 'container_id' => 'topMenu', 'fallback_cb' => '', 'after' => '<li class="topMenuDivider">|</li>', 'items_wrap' => '<ul><li class="topMenuDivider"></li>%3$s<li class="topMenuDivider"></li></ul>', ); wp_nav_menu($defaults); ?> по  <?php $defaults = array( 'theme_location' => 'Primary Menu', 'menu' => 'Primary Menu', 'container' => 'div', 'container_class' => 'spanningMenu noPrint', 'container_id' => 'topMenu', 'fallback_cb' => '', 'after' => '<li class="topMenuDivider">|</li>', 'items_wrap' => '<ul><li class="topMenuDivider"></li>%3$s<li class="topMenuDivider"></li></ul>', ); wp_nav_menu($defaults); ?> 

Результат:

 <div id="topMenu" class="spanningMenu noPrint"> <ul> <li class="topMenuDivider"></li> <li id="menu-item-51" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2 current_page_item menu-item-51"><a href="#">Home</a> <li class="topMenuDivider">|</li> </li> <li id="menu-item-50" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50"><a href="#">Contact Us</a> <li class="topMenuDivider">|</li> </li> <li id="menu-item-49" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-49"><a href="#">Services</a> <li class="topMenuDivider">|</li> </li> <li class="topMenuDivider"></li> </ul> </div> 

Итак, мне еще нужно сделать три вещи, и я не знаю, как их сделать:

  1. Избавьтесь от всех тегов id и class в li, я не уверен, где они сгенерированы.
  2. Как-то получить «[li class =« topMenuDivider »] | [/ li]» появится после закрытия li, а не перед ним.
  3. Избавьтесь от последнего li, который вставляет |

Это возможно?

Редактировать:

Я решил №2, изменив эти строки следующим образом. Это своего рода взлом, но он работает:

  'after' => '</li><li class="topMenuDivider">|', 'items_wrap' => '<ul><li class="topMenuDivider"></li>%3$s<li class="topMenuDivider"></li></ul>', 

Solutions Collecting From Web of "Измените выход wp_nav_menu очень определенным образом?"

Взгляните сюда на # 1: удалите класс li и id для пунктов меню и списка страниц

Что касается пунктов № 2 и № 3, почему бы просто не сделать это с помощью CSS? В любом случае разделители не должны быть в своих тегах <li> . Следующий CSS добавит | после каждого пункта меню, кроме последнего.

 #topMenu ul li a:after { content: "|"; display: inline-block; margin-left: .618em; width: 1em; } #topMenu ul li:last-child a:after { display: none; }