AnQiCMS 作为一个高效、灵活的企业级内容管理系统,在内容展示的细节上同样考虑周全。对于网站的用户体验和 SEO 优化而言,清晰的面包屑导航(Breadcrumb Navigation)是不可或缺的一环。它不仅能帮助用户了解自己在网站中的位置,还能为搜索引擎提供清晰的网站结构信息。今天,我们就来详细探讨一下 AnQiCMS 面包屑导航中,每个链接项(item)都包含了哪些可用的字段。

在 AnQiCMS 的模板设计中,您会使用到 <breadcrumb> 标签来生成面包屑导航。这个标签设计得非常简洁实用,它会为您自动构建一个层级分明的路径列表。

AnQiCMS 面包屑导航标签的基础

首先,我们了解一下 breadcrumb 标签本身的一些主要参数,它们会影响整个面包屑导航的展示方式。

当您在模板中调用面包屑导航时,通常会这样使用:

{% breadcrumb crumbs with index="首页" title=true %}
    <ul>
    {% for item in crumbs %}
        <li><a href="{{item.Link}}">{{item.Name}}</a></li>
    {% endfor %}
    </ul>
{% endbreadcrumb %}

这里,breadcrumb 标签通过 crumbs 这个变量来传递生成的导航数据。除此之外,它还接受一些参数来帮助您更好地控制显示效果:

  • index 参数: 这个参数允许您自定义面包屑导航中“首页”的显示文本。默认情况下,它会显示为“首页”。但如果您希望将其更改为“我的博客”、“网站首页”或者其他任何文字,只需将其设置为您想要的文本即可,比如 index="我的博客"
  • title 参数: 用于控制面包屑导航是否显示当前页面的标题。当您将其设置为 true 时,导航路径的最后一项将显示当前页面的完整标题;设置为 false 则不显示。更灵活的是,您也可以直接赋予它一个自定义的字符串,例如 title="文章详情",这样无论当前页面标题是什么,都会统一显示为“文章详情”。默认情况下,这个参数是 true
  • siteId 参数: 对于使用 AnQiCMS 多站点管理功能的用户来说,siteId 是一个高级选项。它允许您在当前站点调用其他站点的面包屑数据。但在绝大多数单站点场景下,您通常不需要填写或修改它。

理解了这些标签级的控制后,我们便可以深入到每个面包屑链接项(item)内部,看看它们到底提供了哪些具体的信息。

面包屑链接项(item)的可用字段

breadcrumb 标签将导航数据填充到我们定义的 crumbs 变量中时,crumbs 会是一个包含多个链接项的数组(或者说是切片)。在模板中,您会通过 for 循环来遍历这个 crumbs 数组,获取每一个 item,并从中提取出我们需要的字段来构建 HTML 结构。

每个 item 都提供了两个核心且至关重要的字段,它们分别是:

  1. Name 字段 这个字段顾名思义,它存储了面包屑路径中当前链接项的显示文本。无论是“首页”、“新闻中心”、“产品详情”还是某个具体的文章标题,这些用户可见的文字都存储在 Name 字段中。在模板中,您会直接使用 {{ item.Name }} 来获取并展示它。

  2. Link 字段Name 字段相辅相成的是 Link 字段,它保存了该链接项所指向的完整 URL 地址。用户点击面包屑导航中的任何一项,都会跳转到 Link 字段所对应的页面。在模板中,您会将其用于 <a> 标签的 href 属性,例如 <a href="{{ item.Link }}">{{ item.Name }}</a>

AnQiCMS 面包屑导航的设计哲学是保持其核心功能的简洁和高效。因此,每个链接项默认提供的就是这两个最基本但不可或缺的字段:显示名称和跳转链接。

让我们通过一个常见的模板代码片段,来看看如何在实际中应用这些字段:

<nav aria-label="breadcrumb">
    <ol class="breadcrumb">
    {% breadcrumb crumbs with index="我的网站" title=true %}
        {% for item in crumbs %}
            <li class="breadcrumb-item">
                {% if forloop.last %} {# 判断是否是最后一个链接项,通常是当前页面,不需要链接 #}
                    {{ item.Name }}
                {% else %}
                    <a href="{{ item.Link }}">{{ item.Name }}</a>
                {% endif %}
            </li>
        {% endfor %}
    {% endbreadcrumb %}
    </ol>
</nav>

在这个例子中,我们迭代 crumbs 数组,每次循环都会得到一个 item 对象。我们利用 forloop.last 来判断当前 item 是否是面包屑路径中的最后一项(即当前页面),如果是,则只显示文本而不添加链接;否则,就同时使用 item.Linkitem.Name 来构建一个可点击的链接。

总而言之,AnQiCMS 的面包屑导航通过 NameLink 这两个简洁而强大的字段,为您提供了构建清晰、直观导航路径所需的所有基本信息。这种设计让模板开发者能够轻松地集成和自定义面包屑导航的样式,同时确保了网站的可用性和搜索引擎友好性。

常见问题 (FAQ)

  1. Q: 我能否在 AnQiCMS 面包屑导航中,将“首页”的文字修改为其他名称? A: 当然可以。您只需在使用 breadcrumb 标签时,利用 index 参数进行设置。例如,如果您希望将“首页”显示为“网站主页”,可以这样编写:{% breadcrumb crumbs with index="网站主页" %}

  2. Q: 面包屑导航的最后一项总是显示当前页面的标题吗?我能控制它吗? A: 是的,您可以完全控制。breadcrumb 标签的 title 参数就是为此设计的。默认情况下,title 设置为 true 会显示当前页面的实际标题。如果您不希望显示标题,可以设置为 title=false。更灵活地,您也可以直接指定一个字符串,例如 title="文章详情页",这样无论当前页面的具体标题是什么,面包屑的最后一项都将显示您自定义的文本。

  3. Q: 如果我需要面包屑链接包含除名称和链接以外的其他信息(例如图标类名),AnQiCMS 面包屑链接项本身支持这些字段吗? A: AnQiCMS 面包屑导航的每个链接项(item)默认只提供 NameLink 两个核心字段。如果您的设计需要每个链接项携带额外的自定义数据(例如用于显示图标的 CSS 类名),您可能需要考虑在模板层面通过条件判断或自定义逻辑来处理,而不是直接从 item 对象中获取。例如,您可以根据 item.Name 的值来动态添加图标类。如果需要更深度的集成,可能需要对 AnQiCMS 的底层代码进行二次开发以扩展面包屑数据结构。