Ghost主题开发:如何分别调用主次导航至导航栏与页脚
Ghost主题:主导航/次导航分别绑定导航栏与页脚的解决方法
核心问题
你之前错误修改了全局{{navigation}}的调用参数,导致导航栏和页脚共用次导航数据。正确逻辑是导航栏默认调用primary导航,页脚单独调用secondary导航,两者互不干扰。
具体修改步骤
1. 保留导航栏原有设置
default.hbs中的导航栏调用保持不变:
{{navigation}}
Ghost中{{navigation}}默认读取后台设置的primary导航,你的navigation.hbs代码无需修改,可继续正常工作。
2. 修改页脚partial(footer.hbs)
替换原有代码为以下两种方案之一:
方案一:直接遍历次导航数据
直接读取@site.secondary_navigation全局变量,后台未设置次导航时自动显示"Coming soon!":
<ul class="nav footer-nav" role="menu"> {{#foreach @site.secondary_navigation}} <li class="nav-{{slug}}{{#if current}} nav-current{{/if}}"> <a href="{{url absolute="true"}}">{{label}}</a> </li> {{else}} <p>Coming soon!</p> {{/foreach}} </ul>
方案二:复用导航partial(推荐)
若想复用已有的navigation.hbs逻辑,只需在调用时指定type="secondary"参数:
{{> navigation type="secondary"}}
这种方式会让navigation.hbs中的{{navigation}}变量自动读取后台次导航数据,避免重复编写遍历逻辑。
验证效果
- 后台配置好primary和secondary导航的链接
- 重启Ghost服务或刷新主题缓存
- 前端页面将自动呈现:导航栏显示主导航,页脚显示次导航;未设置次导航时,页脚显示"Coming soon!"
内容的提问来源于stack exchange,提问作者Allien
相关产品推荐
相关产品推荐

