Меню не отображается по внешнему виду


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

function register_my_menu() {
   register_nav_menu('header-menu',__( 'Menu' ));
}
add_action( 'init', 'register_my_menu' );

А вот мой код, в котором находится меню.

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

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

Author: Nicolai, 2014-09-08

1 answers

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

ОРИГИНАЛЬНОЕ СООБЩЕНИЕ ОТ SO

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

function pietergoosen_theme_setup() {
  register_nav_menus( array( 
    'header' => 'Header menu', 
    'footer' => 'Footer menu' 
  ) );
 }

add_action( 'after_setup_theme', 'pietergoosen_theme_setup' );

Имейте в виду, вам не обязательно делать это таким образом. Также работает следующее

register_nav_menus( array( 
        'header' => 'Header menu', 
        'footer' => 'Footer menu' 
      ) );

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

Screenshot of menus

Для меню нижнего колонтитула добавьте следующий код в нижний колонтитул, где вам нужно отобразить меню:

<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>

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

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

Screenshot of the menu

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

Screenshot of saved menus

Теперь вы должны увидеть свое навигационное меню в передней части.

Screenshot of footer menu

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

 4
Author: Pieter Goosen, 2017-05-23 12:40:08