使用 Z-Blog 内置导航模块(推荐)

如果后台通过 模块管理 配置了导航(如默认的 navbar 模块),可直接调用以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul id="top-menu">
{foreach $navbar as $nav}
<li class="{if $nav.Level == 'first'}menu-item{/if}{if $nav.Current} current-menu-item{/if}">
<a href="{$nav.Url}" title="{$nav.Name}">{$nav.Name}</a>
{if $nav.SubMenus}
<ul class="sub-menu">
{foreach $nav.SubMenus as $sub}
<li><a href="{$sub.Url}">{$sub.Name}</a></li>
{/foreach}
</ul>
{/if}
</li>
{/foreach}
</ul>

直接调用分类目录作为菜单

若未使用导航模块,可通过分类目录生成菜单(如以顶级分类为导航项):

1
2
3
4
5
6
7
8
9
<ul id="top-menu">
{foreach $categories as $category}
{if $category.Level == 0} <!-- 仅显示顶级分类 -->
<li class="{if $category.ID == $category.Current.ID}current-cat{/if}">
<a href="{$category.Url}">{$category.Name}</a>
</li>
{/if}
{/foreach}
</ul>

关键点说明

高亮当前菜单

通过 $nav.Current 或 $category.Current.ID 判断当前页面,添加 current 类实现高亮。

多级菜单支持

使用 $nav.SubMenus 可遍历子菜单(需在后台配置多级导航)

自定义样式

根据 HTML 结构编写 CSS,例如:

1
2
3
#top-menu li { display: inline-block; }
#top-menu li.current a { color: red; }

调试提示

确保后台 模块管理 中已启用并配置导航模块。

若分类未显示,检查分类是否公开且非隐藏状态。

使用 {debug} 或 print_r 输出变量结构(如 {$navbar})以查看数据。

根据实际主题结构调整选择代码即可实现顶部菜单循环。