如何在AnQiCMS中显示当前分类的详细信息和描述?

📅 👁️ 60

在运营安企CMS(AnQiCMS)网站时,我们经常需要在分类页面上动态展示当前分类的详细信息和描述,比如分类的标题、简介、大图,甚至是自定义的字段。这不仅能帮助用户更好地理解当前页面的主题,也能有效提升页面的SEO表现。安企CMS为此提供了非常灵活且直观的模板标签,让这项工作变得轻松简单。

认识 categoryDetail 标签:你的分类信息“智能助手”

安企CMS的模板系统采用类似Django的语法,其中获取分类详情的核心工具就是categoryDetail标签。你可以把它想象成一个智能助手,你告诉它想看什么字段,它就能把当前页面的分类信息准确地取出来。

在多数情况下,当你访问一个分类页面,比如文章列表页或产品列表页时,categoryDetail标签会自动识别当前的分类,并从中提取你所需的信息。你通常不需要额外指定分类ID,它就能“心领神会”。

如果确实需要获取*非当前页面*的某个特定分类信息,比如在侧边栏显示“关于我们”分类的详情,你可以通过id参数或token(URL别名)参数来明确指定,例如:{% categoryDetail with name="Title" id="10" %}

如何展示分类的各项详细信息?

categoryDetail标签的使用方式通常是:{% categoryDetail 变量名 with name="字段名称" %}。其中,“变量名”是可选的,如果你直接想输出结果,可以省略;如果想将数据存储到变量中进行后续处理,则可以定义一个变量名。而name参数则是你想要获取的具体字段。

下面是一些常用的字段,以及它们在模板中的调用方式:

  • 分类标题 (Title): 这是分类最核心的展示内容。

    <h1>{% categoryDetail with name="Title" %}</h1>
    
  • 分类链接 (Link): 用于生成指向当前分类页面的超链接。

    <a href="{% categoryDetail with name="Link" %}">更多内容</a>
    
  • 分类描述 (Description) 和 分类内容 (Content): Description通常是简短的分类摘要,适合用于meta标签或页面顶部的简介。而Content则是更详细的分类介绍,可能包含富文本内容。

    <p>{% categoryDetail with name="Description" %}</p>
    <div>
        {# 注意:Content字段可能包含HTML,需要使用|safe过滤器确保正确渲染 #}
        {%- categoryDetail categoryContent with name="Content" %}
        {{ categoryContent|safe }}
    </div>
    

    这里特别提醒,Content字段如果包含HTML标签,一定要加上|safe过滤器,否则HTML代码会被转义,而不是作为页面结构渲染。

  • 图片信息 (Logo, Thumb, Images):

    • Logo:通常指分类的大图或主图。
    • Thumb:指分类的缩略图。
    • Images:如果分类设置了多张Banner图或组图,可以使用Images字段获取一个图片数组,并通过循环展示。
    {# 显示分类Logo大图 #}
    <img src="{% categoryDetail with name="Logo" %}" alt="{% categoryDetail with name="Title" %}" />
    
    {# 显示分类Banner组图(如果有) #}
    {% categoryDetail categoryBanners with name="Images" %}
    {% if categoryBanners %} {# 检查是否有图片存在,避免空循环 #}
        <div class="category-banner-slider">
            {% for imgUrl in categoryBanners %}
                <img src="{{ imgUrl }}" alt="{% categoryDetail with name="Title" %}" />
            {% endfor %}
        </div>
    {% endif %}
    
  • 上级分类ID (ParentId) 和 文档数量 (ArchiveCount): ParentId可以帮助你构建更复杂的分类导航,例如显示当前分类的父级分类名称。ArchiveCount则能让你知道当前分类下有多少篇文章或产品。

    {# 获取上级分类ID,并尝试获取其标题 #}
    {% set currentParentId = "" %}
    {% categoryDetail parentId with name="ParentId" %}{% set currentParentId = parentId %}
    {% if currentParentId and currentParentId != "0" %}
        <p>上级分类:<a href="{% categoryDetail with name="Link" id=currentParentId %}">{% categoryDetail with name="Title" id=currentParentId %}</a></p>
    {% endif %}
    
    <p>包含文章数:{% categoryDetail with name="ArchiveCount" %}</p>
    

处理自定义分类字段

安企CMS的“灵活的内容模型”是一个非常强大的功能,它允许你为不同的内容类型(比如文章、产品、以及你自定义的模型)添加专属的字段。如果你给分类模型也添加了自定义字段,同样可以通过categoryDetail标签来获取。

假设你为分类添加了一个名为custom_banner_text的自定义字段,你可以直接这样调用:

<p>自定义Banner文本:{% categoryDetail with name="custom_banner_text" %}</p>

如果你希望循环显示所有自定义字段,可以使用name="Extra"

{% categoryDetail extras with name="Extra" %}
{% for field in extras %}
    <div>
        <strong>{{ field.Name }}:</strong>
        {# 注意:自定义字段的值也可能包含HTML,酌情使用|safe #}
        <span>{{ field.Value|safe }}</span>
    </div>
{% endfor %}

结合实例:在分类列表页显示详细信息

让我们看一个在分类列表模板中展示当前分类详情的完整例子。假设这是article/list.html模板:

{% extends 'base.html' %} {# 继承基础布局 #}

{% block main_content %}
    <div class="category-header">
        {# 显示当前分类的大标题 #}
        <h1>{% categoryDetail with name="Title" %}</h1>

        {# 如果有分类Logo,显示它 #}
        {% categoryDetail categoryLogo with name="Logo" %}
        {% if categoryLogo %}
            <img src="{{ categoryLogo }}" alt="{% categoryDetail with name="Title" %}" class="category-logo" />
        {% endif %}

        {# 显示分类的描述 #}
        <p class="category-description">{% categoryDetail with name="Description" %}</p>

        {# 显示分类的详细内容,并确保HTML正确渲染 #}
        <div class="category-full-content">
            {%- categoryDetail categoryContent with name="Content" %}
            {{ categoryContent|safe }}
        </div>

        {# 假设你有一个自定义字段 "category_slogan" #}
        {% categoryDetail categorySlogan with name="category_slogan" %}
        {% if categorySlogan %}
            <p class="category-slogan">“{{ categorySlogan }}”</p>
        {% endif %}
    </div>

    <div class="article-list">
        <h2>此分类下的文章</h2>
        {# 获取并展示当前分类下的文章列表 #}
        {% archiveList articles with type="page" limit="10" %}
            {% for article in articles %}
                <div class="article-item">
                    <h3><a href="{{ article.Link }}">{{ article.Title }}</a></h3>
                    <p>{{ article.Description }}</p>
                    <span>发布日期:{{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
                    <span>阅读量:{{ article.Views }}</span>
                </div>
            {% empty %}
                <p>当前分类下还没有文章。</p>
            {% endfor %}
            {# 分页导航 #}
            {% pagination pages with show="5" %}
                {# 这里可以插入你的分页代码 #}
            {% endpagination %}
        {% endarchiveList %}
    </div>
{% endblock %}

通过这个例子,我们可以看到如何将categoryDetail标签获取到的信息,与archiveList等其他标签结合,共同构建出内容丰富且功能完善的分类页面。

总结

安企CMS的categoryDetail标签是网站内容运营者和模板开发者不可或缺的利器。它以简洁的方式提供了对分类详细信息的高度控制,无论是基础的标题、描述,还是复杂的多图轮播和自定义字段,都能轻松实现。善用这些标签,能够帮助你的网站在信息展示和用户体验上更上一层楼。


常见问题 (FAQ)

1. 如何在当前分类页面获取其父级分类的名称和链接?

你首先需要获取当前分类的ParentId。然后,你可以再次使用categoryDetail标签,传入这个ParentId来获取父级分类的详细信息。

”`twig {% categoryDetail currentCategory with name=“Id” %} {# 获取当前分类ID #} {% categoryDetail parentId with name=“ParentId” id=currentCategory %} {# 获取当前分类的父ID #}

{% if parentId and parentId != “0” %}

<p>父级分类:<a href="{% categoryDetail with name="Link" id=parentId %}">{% categoryDetail with name="Title" id=parentId %}</a></p>

{% else %}

<p

相关文章

AnQiCMS如何获取指定内容模型的分类列表并显示?

在AnQiCMS中,灵活地获取并展示指定内容模型的分类列表,是构建清晰网站结构和良好用户体验的关键。无论是产品展示、文章归档还是服务介绍,分类列表都扮演着重要的导航角色。AnQiCMS强大的模板标签系统,让这一过程变得直观且高效。 ### 核心标签:`categoryList`的妙用 在AnQiCMS的模板设计中,我们主要依靠`categoryList`这个强大的标签来获取分类数据

2025-11-08

如何使用AnQiCMS的面包屑导航标签展示当前页面路径?

在网站运营中,清晰的导航路径对于用户体验和搜索引擎优化(SEO)至关重要。面包屑导航(Breadcrumb Navigation)正是这样一种能显著提升网站可用性的辅助工具,它能够直观地告诉用户当前所在页面的位置,并提供快速返回上级页面的便捷入口。在AnQiCMS中,实现面包屑导航功能非常简单和灵活。 AnQiCMS 为我们提供了专门的面包屑导航标签 `breadcrumb`,通过它

2025-11-08

AnQiCMS模板如何构建和显示多级导航菜单?

网站导航是用户与网站互动的第一扇窗,清晰、直观的导航系统能极大地提升用户体验,帮助访客快速找到所需信息。AnQiCMS 提供了灵活强大的导航管理功能,无论是简单的单级菜单,还是复杂的二级、三级甚至更多层级的多级导航,都能轻松实现。接下来,我们将详细了解如何在 AnQiCMS 中构建和显示多级导航菜单。 ## 后端设置:构建导航的基石 在 AnQiCMS 中,多级导航的构建始于后台的精心配置

2025-11-08

AnQiCMS如何动态显示网站的首页TDK信息?

网站的TDK,即Title(标题)、Description(描述)和Keywords(关键词),是搜索引擎优化(SEO)的基础要素,它们直接影响着网站在搜索引擎结果页面(SERP)中的展示效果和用户的点击意愿。对于网站的“门面”——首页而言,精准且有吸引力的TDK信息更是至关重要。 在安企CMS (AnQiCMS) 中,管理和动态展示网站首页的TDK信息是一项直观且高效的任务

2025-11-08

AnQiCMS模板如何展示所有单页面的列表和链接?

在AnQiCMS中,想要在网站模板里展示所有单页面的列表和链接,其实是一个非常常见的需求,比如您可能想在网站底部放置一个“网站地图”或者“快速链接”区域,又或者需要在侧边栏列出所有的“服务项目”单页。AnQiCMS提供了一个简单而强大的模板标签,让您能够轻松实现这一点。 ### 理解单页面及其作用 在AnQiCMS中,单页面(Page)通常用于发布那些内容相对固定

2025-11-08

如何在AnQiCMS中获取并显示特定单页面的内容和标题?

在AnQiCMS中,单页面是网站结构中非常实用的一部分,它们通常用于展示“关于我们”、“联系方式”等静态内容。作为内容运营者,您可能会经常需要在网站的不同位置获取并展示这些特定单页面的内容和标题。AnQiCMS提供了直观且强大的模板标签,让这个过程变得十分简单。 ### 理解AnQiCMS中的单页面 AnQiCMS的设计理念之一就是内容的高度可定制性。单页面在后台的“页面资源”模块中进行管理

2025-11-08

AnQiCMS如何获取文章或产品的列表并支持分页显示?

在内容管理系统中,如何高效地展示文章或产品列表,并为用户提供流畅的分页体验,是网站运营者普遍关心的问题。AnQiCMS作为一个基于Go语言开发的系统,通过其灵活强大的模板标签系统,让这一切变得直观且高效。接下来,我们将探讨如何利用AnQiCMS的内置功能,轻松实现文章或产品的列表展示与分页功能。 ### 开启内容列表的旅程

2025-11-08

如何在AnQiCMS中显示指定文章或产品的详细内容?

安企CMS(AnQiCMS)作为一个高效灵活的内容管理系统,提供了直观的方式来管理和展示各类内容。当您希望在网站上呈现某一篇特定的文章、产品详情,或者任何通过内容模型创建的独立内容页面时,核心在于利用其强大的模板标签功能。 AnQiCMS将网站上的文章、产品等可独立展示的内容统称为“文档”(archive)。这种统一的设计使得管理和调用这些内容的详细信息变得非常一致和便捷

2025-11-08