Меню не отображается в разделе "Внешний вид"

8 сент. 2014 г., 12:08:41
Просмотры: 47.1K
Голосов: 3

Я добавил следующий код в файл function.php

function register_my_menu() {
   register_nav_menu('header-menu',__( 'Меню' ));
}
add_action( 'init', 'register_my_menu' );

А вот мой код, где расположено меню.

wp_nav_menu( array( 'theme_location' => 'header-menu' ) );

В чем может быть проблема?

0
Все ответы на вопрос 1
6

Я уже давал полный ответ на этот вопрос некоторое время назад на SO. Вы можете ознакомиться с полным постом здесь. Для пользователей WPSE я скопировал свой ответ из того поста. Я не редактировал его, оригинальный пост был о добавлении и отображении навигационного меню в подвале, но точно такой же метод применим и для навигационного меню в шапке. Надеюсь, это будет полезно.

ОРИГИНАЛЬНЫЙ ПОСТ ИЗ SO

Вы правильно зарегистрировали два навигационных меню. Я всегда делаю это в хуке начальной настройки темы, который привязан к хуку after_setup_theme. Поэтому в вашем functions.php я бы сделал примерно так:

function pietergoosen_theme_setup() {
  register_nav_menus( array( 
    'header' => 'Меню шапки', 
    'footer' => 'Меню подвала' 
  ) );
}

add_action( 'after_setup_theme', 'pietergoosen_theme_setup' );

Обратите внимание, что это не единственный способ. Следующий вариант также работает:

register_nav_menus( array( 
  'header' => 'Меню шапки', 
  'footer' => 'Меню подвала' 
) );

Теперь вы должны увидеть два меню в админке в разделе "Внешний вид > Меню > Управление расположениями" (только если меню существует).

Скриншот меню

Чтобы отобразить меню в подвале, добавьте следующий код в файл footer.php в том месте, где должно появляться меню:

<nav id="footer-navigation" class="site-navigation footer-navigation" role="navigation">
  <?php wp_nav_menu( array( 'theme_location' => 'footer', 'menu_class' => 'nav-menu', 'fallback_cb' => false ) ); ?>
</nav>

На этом этапе ничего не будет отображаться, и я думаю, что именно здесь вы застряли. Причина в том, что в меню не назначены никакие элементы, и если в меню ничего нет, то ничего и не отобразится. Поэтому нам нужно добавить элементы для отображения.

В админке перейдите в "Внешний вид > Меню > Редактировать меню". В поле "Название меню" введите имя для вашего меню и нажмите "Создать меню". Теперь вы сможете добавлять элементы в меню на экране редактирования меню.

Скриншот меню

Теперь вы можете выбирать элементы из левой части для добавления в ваше меню. Вы также можете установить расположение меню - в данном случае в подвале. Я выбрал отображение категорий в подвале. Нажмите "Сохранить меню", когда закончите.

Скриншот сохраненного меню

Теперь ваше навигационное меню должно отображаться на фронтенде.

Скриншот меню в подвале

Осталось только добавить стили для вашей навигационной панели. Точно так же вы можете добавить меню в шапку, только код нужно будет вставить в header.php. Надеюсь, эта информация окажется полезной.

8 сент. 2014 г. 12:53:26
Комментарии

Я сделал, как вы объяснили, но результат остался таким же :(

Rohil_PHPBeginner Rohil_PHPBeginner
8 сент. 2014 г. 13:08:08

Ваш файл называется function.php или functions.php?

Pieter Goosen Pieter Goosen
8 сент. 2014 г. 13:16:04

Он называется functions.php ...

Rohil_PHPBeginner Rohil_PHPBeginner
8 сент. 2014 г. 13:21:14

Какие ошибки вы получаете? Что не происходит, что должно происходить, или что происходит, чего не должно быть? Пожалуйста, объясните.

Pieter Goosen Pieter Goosen
8 сент. 2014 г. 13:24:24

Нашел решение! Спасибо за уделенное время. Ты должен мне кофе :)

Rohil_PHPBeginner Rohil_PHPBeginner
8 сент. 2014 г. 13:25:22

Пожалуйста, объясните, что изменилось или в чем было решение?

Lee Lee
13 февр. 2019 г. 13:18:20
Показать остальные 1 комментариев