Intereting Posts
Пользовательский пул в URL для CPT и таксономии Как сделать сообщения в блоге появляться под разными пунктами меню? Обязательный отрывок для пользовательского типа сообщения плагин генерировал 751 символ неожиданного выхода во время активации Как настроить расписание моего мероприятия еженедельно с помощью wp_schedule_event () Получить выбранные значения из флажков и переключателей через Gravity Forms gform_after_submission hook Пользовательское имя мета для пользовательского типа сообщения Создание формы регистрации электронной почты. Где должна храниться информация в БД? RegExp для исключения комментариев в формате HTML (FOR SOMME) Обнаружение, если родительская страница имеет галерею Как искать сообщения, заданные post_content AND post_excerpt, используя WP_Query? Форматирование <code>? Можно ли добавить боковую панель в крюк woocommerce? Лучший способ передать переменные вокруг сайта WordPress? Невозможно сохранить виджетов в пользовательских боковых панелях

Почему wp_nav_menu () не показывает правильную работу при вызове два раза подряд?

Я просто заметил что-то странное, чего я раньше не видел. Я работаю над проектом с использованием WP 3.6.1. Этот проект имеет два разных меню (фактически, три, но это не важно). Я wp_nav_menu их через функцию wp_nav_menu .

Я уже много раз делал это сейчас … но сегодня все по-другому. Сегодня это не работает 🙁

Мой PHP-код, помещенный в header.php, выглядит так:

  <nav id="nav-menu-container"> <div id="main-menu" class="main-menu menu clearfix"> <?php wp_nav_menu('header_main'); ?> </div> <div id="secondary-menu" class="secondary-menu menu clearfix"> <?php wp_nav_menu('header_secondary'); ?> </div> </nav> 

Элементы меню объявляются в functions.php а два разных меню настраиваются через панель управления, чтобы отображаться в каждом месте.

  if (function_exists('register_nav_menus')){ register_nav_menu('header_main', 'Menú principal' ); register_nav_menu('header_secondary', 'Menú secundario' ); } 

Но первое меню продолжает печататься в двух местах. Как я сказал выше, использование двух разных меню – это то, что Ive делало в прошлом, но сегодня я не вижу ошибки … и есть и ошибка, так как она не работает: S

Есть идеи?

Solutions Collecting From Web of "Почему wp_nav_menu () не показывает правильную работу при вызове два раза подряд?"

Вы не вызываете wp_nav_menu() правильно.

Вам нужно передать массив args и объявить ключ theme_location .

Я предполагаю, что, поскольку вы передаете строку, а не массив, wp_nav_menu() не распознает параметр и возвращается к выходу по умолчанию:

  • меню, соответствующее идентификатору, slug или имени, заданному параметром меню, если в этом меню есть не менее 1 элемент;
  • в противном случае – первое непустое меню;
  • в противном случае вывод функции, заданной параметром fallback_cb (wp_page_menu (), по умолчанию);
  • иначе ничего.

И вы видите первый непустой вывод меню в обоих местах.

Попробуйте это вместо этого:

 wp_nav_menu( array( 'theme_location' => 'header_main' ) ): 

а также

 wp_nav_menu( array( 'theme_location' => 'header_secondary' ) ): 

Проблема в том, что wp_nav_menu качестве входных wp_nav_menu требует ассоциативный массив, и я вхожу в необработанную строку.

Этот код может работать повсюду.

  <nav id="nav-menu-container"> <div id="main-menu" class="main-menu menu clearfix"> <?php wp_nav_menu( array('theme_location' => 'header_main') ); ?> </div> <div id="secondary-menu" class="secondary-menu menu clearfix"> <?php wp_nav_menu( array('theme_location' => 'header_secondary') ); ?> </div> </nav> 

Извините за двойной пост. Похоже, что первое меню тоже не появлялось, скорее оно было показано как опция по умолчанию, поскольку никакое значение не передавалось вообще.