个性化阅读
专注于IT技术分析

WordPress自定义主题-在footer.php中调用时菜单不显示

我正在尝试为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'))

菜单很好。


#1


你已经正确注册了两个导航菜单。我总是在最初的主题设置挂钩中执行此操作, 该挂钩被关联到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中的菜单。希望对你有用。

赞(0)
未经允许不得转载:srcmini » WordPress自定义主题-在footer.php中调用时菜单不显示

评论 抢沙发

评论前必须登录!