在 Z-Blog 中,首页顶部菜单的循环代码

风中赏雪 Zblog Zblog 2025-09-27 141 0

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

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


<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>

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

<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,例如:


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

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

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

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

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