Меню не отображается по внешнему виду
Я добавил следующий код в свой 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' ) );
В чем может быть проблема?
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'
) );
Теперь вы должны увидеть два меню в бэкэнде в разделе "Внешний вид > Меню > Управление местоположениями" (только при наличии меню)
Для меню нижнего колонтитула добавьте следующий код в нижний колонтитул, где вам нужно отобразить меню:
<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 . Я надеюсь, что вы найдете это полезным.