在AnQiCMS中灵活展示分类名称:一份详尽的模板调用指南
内容分类是网站结构的核心,它们不仅帮助组织和管理海量信息,更是引导用户浏览网站、提升用户体验的关键。无论是文章列表、产品详情,还是侧边导航,清晰地展示分类名称都能让您的网站内容更具条理。AnQiCMS 凭借其简洁高效的模板引擎,提供了多种灵活的方式来调用和显示指定分类的名称,让您可以根据不同的场景需求,轻松实现定制化的内容展示。
接下来,我们将从几个常见的场景出发,详细探讨如何在AnQiCMS模板中显示分类名称。
一、显示当前页面的分类名称
当您身处一个分类列表页面(例如显示“新闻资讯”分类下的所有文章)时,往往需要在页面顶部显示当前分类的名称。AnQiCMS 提供了 categoryDetail 标签,让这个操作变得非常直观。
如果您想显示当前分类的标题,只需要在模板中这样使用:
<div>当前分类名称:{% categoryDetail with name="Title" %}</div>
这里的 name="Title" 告诉系统您需要获取分类的标题。因为没有指定 id 或 token 参数,系统会自动识别并获取当前页面所对应的分类信息。
二、显示指定分类的名称
有时,您可能需要在非分类页面(例如首页、文章详情页)显示某个特定分类的名称,比如网站底部导航中某个固定分类的链接文字。此时,可以通过分类的ID或URL别名来精确获取。
要通过分类ID获取名称,假设您的“关于我们”分类ID是 5,您可以这样调用:
<div>指定分类名称(ID为5):{% categoryDetail with name="Title" id="5" %}</div>
如果您的分类配置了URL别名(例如,一个名为“行业动态”的分类,URL别名是 industry-news),您也可以使用这个别名来获取其名称:
<div>指定分类名称(别名为industry-news):{% categoryDetail with name="Title" token="industry-news" %}</div>
通过这种方式,您可以灵活地在网站的任何位置显示您想要展示的特定分类名称。
三、在内容(文章、产品)详情页显示所属分类名称
当用户浏览一篇具体的文章或产品时,通常会希望知道它属于哪个分类,以便更好地理解内容上下文或跳转到相关分类。AnQiCMS 在文档(文章或产品)详情页提供了直接获取所属分类信息的能力。
在文档详情模板中,您可以通过 archiveDetail 标签获取当前文档的所有分类信息,然后从中提取分类标题:
{% archiveDetail archiveCategory with name="Category" %}
<p>所属分类:<a href="{{ archiveCategory.Link }}">{{ archiveCategory.Title }}</a></p>
这里,我们首先将当前文档的分类对象赋值给 archiveCategory 变量,然后通过 archiveCategory.Title 就能方便地显示分类名称,同时 archiveCategory.Link 也能用来构建分类链接,方便用户点击跳转。
四、在内容(文章、产品)列表页显示每个项目的所属分类名称
网站的首页、分类列表页通常会展示多篇文章或产品,每个项目下方都会标注其所属分类。在这种循环展示的场景中,AnQiCMS 同样能让您轻松实现。
您可以使用 archiveList 标签获取文章列表,然后在 for 循环中,结合 categoryDetail 标签,显示每一篇文章所属的分类名称:
{% archiveList archives with type="list" limit="10" %}
{% for item in archives %}
<div>
<h3><a href="{{ item.Link }}">{{ item.Title }}</a></h3>
<p>
所属分类:
{# 通过 item.CategoryId 获取分类ID,再用 categoryDetail 获取分类名称和链接 #}
{% categoryDetail currentCategory with name="Title" id=item.CategoryId %}
{% categoryDetail categoryLink with name="Link" id=item.CategoryId %}
<a href="{{ categoryLink }}">{{ currentCategory }}</a>
</p>
<p>{{ item.Description }}</p>
</div>
{% endfor %}
{% endarchiveList %}
在上面的例子中,item.CategoryId 会在循环中提供当前文章的分类ID,我们再用这个ID去 categoryDetail 标签中获取对应的分类名称和链接。
五、显示多级分类列表的名称
在一些复杂的导航或侧边栏场景中,您可能需要显示多层级的分类列表,包括顶级分类和它们的子分类。categoryList 标签同样能够胜任。
例如,要显示所有顶级分类及其一级子分类的名称:
{% categoryList topCategories with moduleId="1" parentId="0" %} {# 获取文章模型的所有顶级分类 #}
<ul>
{% for topItem in topCategories %}
<li>
<a href="{{ topItem.Link }}">{{ topItem.Title }}</a>
{% if topItem.HasChildren %} {# 判断当前分类是否有子分类 #}
<ul>
{% categoryList subCategories with parentId=topItem.Id %} {# 获取当前顶级分类的子分类 #}
{% for subItem in subCategories %}
<li><a href="{{ subItem.Link }}">{{ subItem.Title }}</a></li>
{% endfor %}
{% endcategoryList %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% endcategoryList %}
这里,我们通过嵌套的 categoryList 标签和 topItem.HasChildren 判断,优雅地实现了多级分类名称的展示。
总结
AnQiCMS 的模板系统提供了一套强大而灵活的标签,让您能够轻松地在网站的各个角落显示分类名称。无论是获取单个分类的详细信息,还是在列表页中动态展示,亦或是构建多层级的导航结构,这些标签都能大大简化您的模板开发工作。掌握这些调用方法,您将能更自如地设计和优化您的网站内容布局。
常见问题 (FAQ)
Q1: 为什么我的分类名称没有显示出来?
A1: 如果分类名称未能正常显示,首先请检查您的模板代码中 categoryDetail 或 categoryList 标签的参数是否正确。确保 id 或 token 参数的值与您后台设置的分类ID或URL别名完全匹配。其次,检查 name="Title" 是否拼写正确,以及模板文件是否已正确上传并生效。在某些情况下,可能是由于缓存原因,尝试清除AnQiCMS后台的系统缓存,或刷新浏览器缓存。
Q2: 除了分类名称,我还能显示分类的其他信息吗?比如分类的描述或图片?
A2: 当然可以。categoryDetail 标签不仅支持获取 Title,还可以获取分类的其他字段,例如 Description(分类描述)、Link(分类链接)、Logo(分类缩略图大图)、Thumb(分类缩略图),甚至是您在后台内容模型中为分类自定义的字段。您只需将 name 参数改为对应的字段名称即可。例如,要显示分类描述:{% categoryDetail with name="Description" %}。
Q3: 如果我想获取某个分类的所有子分类名称,但是不包括当前分类自身,应该怎么做?
A3: 在 categoryList 标签中,您可以通过 parentId 参数来指定获取某个分类的子分类。例如,如果您想获取 ID 为 X 的分类的所有子分类名称,代码会是:
{% categoryList subCategories with parentId="X" %}。在循环输出 subCategories 时,只会包含其子分类,而不会包含 ID 为 X 的分类自身。