Я работаю с bootstrap3 и wordpress 3.6, но обновляю до 3.7 функции. wp_nav_menu работает неправильно.
я использую 3.6
<nav class="navbar navbar-inverse"> <?php wp_nav_menu( array( 'container' => false, 'items_wrap' => '<ul class="nav navbar-nav">%3$s</ul>', 'theme_location' => 'menu_principal' )); ?> </nav>
но этот код не работает в 3.7, не добавляйте ul class nav navbar-nav. Зачем? Благодарю.
<nav class="navbar navbar-inverse"> <div class="menu"> <ul> <li class="page_item page-item-7"><a href="http://localhost:8888/wordpress2/?page_id=7">Blog</a></li> <li class="page_item page-item-9"><a href="http://localhost:8888/wordpress2/?page_id=9">contacto</a></li> </ul> </div> </nav>
не добавлять класс ul почему?
В этом случае кажется, что проблема заключается в том, что вы фактически не выводите пользовательское навигационное меню вообще, а скорее wp_page_menu()
меню: wp_page_menu()
. Обратите внимание, что классы для элементов списка – это page-item
а не menu-item
. Это определенная подделка, что вывод создается с помощью wp_page_menu()
а не wp_nav_menu()
.
Решение . Убедитесь, что вы создали пользовательское навигационное меню и назначили его в menu_principal
Theme Location.
Длинный ответ, коротко: вы используете правильный метод для изменения menu_class
и в процессе, вероятно, наступаете на c hanges, которые были сделаны в wp_nav_menu()
между WordPress 3.6 и 3.7 .
Вместо того, чтобы возиться с items_wrap
, вам нужно манипулировать menu_class
, который является правильным параметром для определения класса, применяемого к элементу меню, выводимого с помощью wp_nav_menu()
:
$menu_class
(строка) (необязательно) Класс, который применяется к элементу
ul
который охватывает элементы меню. Несколько классов могут быть разделены пробелами. Ранее известный как$wrap_class
.По умолчанию:
menu
Попробуй это:
<?php wp_nav_menu( array( 'container' => false, 'menu_class' => 'nav navbar-nav', 'theme_location' => 'menu_principal' ) ); ?>