it-swarm.xyz

По внешнему виду

Я добавил следующий код в мой 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' ) );

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

3
Rohil_PHPBeginner

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

ОРИГИНАЛ POST ИЗ 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. Я надеюсь, что вы найдете это полезным.

3
Pieter Goosen