我试图为Wordpress创建自定义网站主题,但我遇到了一些问题。我在网站的页眉和页脚部分使用两个完全相同的菜单。
致电
wp_nav_menu(array('theme_location' => 'header'));
header.php中的运行良好,菜单打印出来没有任何问题,但如果我在footer.php文件中执行相同操作,则菜单不会打印,var_dump(wp_nav_menu(array('theme_location' => 'header')));
打印错误。
我尝试过在Google上找到修改functions.php文件的一些解决方法,但是没有一个能帮助我解决这个问题。我的functions.php文件现在只包含一行
register_nav_menus( array( 'header' => 'Header menu', 'footer' => 'Footer menu' ) );
是的,我尝试使用
wp_nav_menu(array('theme_location' => 'footer'))
同样的结果。如果我从header.php中调用相同的函数
wp_nav_menu(array('theme_location' => 'footer'))
菜单效果很好。
答案 0 :(得分:11)
您已正确注册了两个导航菜单。我总是在最初的主题设置钩子中做到这一点,它挂钩到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>
在这个阶段不会显示任何内容,我认为这也是你被困住的地方。原因是没有分配给菜单的任何项目,如果没有分配给菜单,则不会显示任何内容。所以我们必须插入要显示的内容。
在后端,转到&#34;外观&gt;菜单&gt;编辑菜单&#34;。在&#34;菜单名称&#34;字段,输入菜单名称,然后单击&#34;创建菜单&#34;。您现在可以在菜单屏幕中添加菜单。
您现在可以从左侧选择要插入菜单的项目。您还可以设置菜单的位置,在本例中为页脚。我已选择在页脚中显示类别。点击&#34;保存菜单&#34;完成后。
您现在应该在前端看到导航菜单。
您现在必须在导航栏中添加样式。您将对标题导航菜单执行完全相同的操作,接受您将调用添加到header.php中的菜单。我希望你觉得这很有用。