AnQiCMS如何调用并显示指定分类下的子分类列表或其关联文章列表?

📅 👁️ 80

在使用AnQiCMS进行网站内容管理时,我们经常需要根据特定的内容组织方式来展示信息。其中,如何灵活地调用并展示某个指定分类下的子分类列表,或者该分类所关联的文章列表,是许多用户会遇到的场景。AnQiCMS强大的模板引擎和丰富的标签功能,让实现这些需求变得直观且高效。

AnQiCMS采用了类似Django模板引擎的语法,这意味着您可以通过简洁的标签来获取和渲染数据,而无需深入复杂的编程代码。这使得内容运营人员即使不具备深厚的开发背景,也能轻松驾驭网站内容的展示逻辑。

灵活调用并显示指定分类下的子分类列表

在构建网站导航、侧边栏或者某个专题页面的内容索引时,我们常常需要列出某个主分类下的所有子分类。AnQiCMS提供了categoryList标签,能够帮助我们轻松实现这一目标。

要调用指定分类下的子分类列表,最关键的参数是moduleIdparentIdmoduleId用于指定您要获取的是哪种内容模型(例如文章模型、产品模型等)的分类,通常文章模型对应的ID是1,产品模型可能是2,具体可以在后台内容模型管理中查看。parentId则是指定您想要获取哪个分类的子分类。如果parentId设置为0,则会获取所有顶级分类。如果您想获取某个特定分类(比如ID为X的分类)下的子分类,只需将parentId设置为X即可。

下面是一个展示如何调用文章模型下某个特定分类(例如,我们假设分类ID为10)的子分类列表的示例:

{% categoryList subCategories with moduleId="1" parentId="10" %}
    <ul class="sub-category-list">
        {% for category in subCategories %}
            <li>
                <a href="{{ category.Link }}" title="{{ category.Title }}">{{ category.Title }}</a>
                {% if category.HasChildren %}
                    {# 如果子分类还有下级,可以继续嵌套调用,或者仅显示一层 #}
                    <span class="has-children-indicator">»</span>
                {% endif %}
            </li>
        {% empty %}
            <p>该分类下暂无子分类。</p>
        {% endfor %}
    </ul>
{% endcategoryList %}

在这段代码中,subCategories是我们为获取到的子分类列表定义的变量名。category.Linkcategory.Title会分别输出子分类的链接和名称。category.HasChildren则是一个布尔值,可以用来判断当前分类是否还有更深层次的子分类,以便于在前端进行不同的展示处理。

调取并展示指定分类下的关联文章列表

除了展示子分类,我们更常做的是展示某个分类下的文章内容。AnQiCMS的archiveList标签是处理这类需求的利器。它不仅能获取文章列表,还能进行多种筛选和排序。

要显示指定分类下的文章,同样需要明确moduleIdcategoryIdcategoryId设置为您想要展示文章的那个分类的ID。此外,limit参数可以控制显示的文章数量,order参数可以定义排序规则(比如按发布时间倒序id desc,或按浏览量倒序views desc)。type参数则决定了列表的类型,list表示获取固定数量的列表,而page则意味着您希望进行分页显示。

以下是一个展示分类ID为15的文章模型下文章列表的例子,并包含简单的分页功能:

<div class="category-articles">
    {# 调用分类ID为15的文章列表,每页显示10篇文章,并启用分页 #}
    {% archiveList articles with categoryId="15" moduleId="1" limit="10" order="id desc" type="page" %}
        {% for article in articles %}
            <div class="article-item">
                <a href="{{ article.Link }}" title="{{ article.Title }}">
                    <h3>{{ article.Title }}</h3>
                    {% if article.Thumb %}
                        <img src="{{ article.Thumb }}" alt="{{ article.Title }}" class="article-thumb">
                    {% endif %}
                    <p>{{ article.Description|truncatechars:100 }}</p> {# 截取前100个字符作为简介 #}
                    <span class="publish-date">发布于:{{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
                    <span class="views">阅读量:{{ article.Views }}</span>
                </a>
            </div>
        {% empty %}
            <p>该分类下暂无文章。</p>
        {% endfor %}

        {# 结合分页标签,生成分页链接 #}
        {% pagination pages with show="5" %}
            <div class="pagination-controls">
                {% if pages.FirstPage %}
                    <a href="{{ pages.FirstPage.Link }}">首页</a>
                {% endif %}
                {% if pages.PrevPage %}
                    <a href="{{ pages.PrevPage.Link }}">上一页</a>
                {% endif %}
                {% for pageItem in pages.Pages %}
                    <a href="{{ pageItem.Link }}" class="{% if pageItem.IsCurrent %}active{% endif %}">{{ pageItem.Name }}</a>
                {% endfor %}
                {% if pages.NextPage %}
                    <a href="{{ pages.NextPage.Link }}">下一页</a>
                {% endif %}
                {% if pages.LastPage %}
                    <a href="{{ pages.LastPage.Link }}">末页</a>
                {% endif %}
            </div>
        {% endpagination %}
    {% endarchiveList %}
</div>

在这个例子中,articles是我们定义的文章列表变量。我们展示了文章标题、缩略图、简介、发布日期和阅读量。truncatechars:100是一个过滤器,用于将简介内容截断到指定长度并添加省略号,这在列表页展示时非常实用。stampToDate是一个格式化时间戳的标签,可以将CreatedTime这个时间戳转换为易读的日期格式。当type="page"时,pagination标签会根据当前列表的上下文自动生成分页链接。

结合使用:构建更动态的展示

AnQiCMS的模板标签还可以灵活地组合使用,构建出更具动态性的页面内容。例如,您可能希望在一个页面上首先列出多个顶级分类,然后在每个分类下再显示其最新的几篇文章。

”`twig

{% categoryList mainCategories with moduleId="1" parentId="0" %} {# 获取文章模型下的所有顶级分类 #}
    {% for mainCategory in mainCategories %}
        <div class="main-category-block">
            <h2><a href="{{ mainCategory.Link }}">{{ mainCategory.Title }}</a></h2>
            <ul class="articles-in-category">
                {# 在每个顶级分类下,调用其最新的5篇文章 #}
                {% archiveList articlesInCategory with type="list" categoryId=mainCategory.Id limit="5" order="id desc" %}
                    {% for article in articlesInCategory

相关文章

如何在AnQiCMS模板中显示当前文章的“上一篇”和“下一篇”文档链接和标题?

网站内容的有效组织和便捷导航,是提升用户体验、延长访问时长的关键所在。当访客沉浸在您的文章中时,如果能无缝地跳转到相关或相邻的内容,无疑会大大增强其浏览的连贯性。AnQiCMS作为一个功能完善的内容管理系统,提供了直观且强大的模板标签,帮助我们轻松实现在文章详情页中显示“上一篇”和“下一篇”文档的链接和标题。 ###

2025-11-09

AnQiCMS如何根据用户组权限控制付费内容的显示或隐藏?

在当今内容为王的时代,如何有效地对优质内容进行管理和变现,是许多网站运营者关注的焦点。特别是对于那些提供会员服务、付费课程或独家资讯的网站而言,精准控制不同用户的内容访问权限显得尤为重要。AnQiCMS作为一款高效可定制的内容管理系统,提供了灵活的用户组管理与VIP系统,可以帮助我们轻松实现付费内容的显示或隐藏,从而更好地进行内容分发和收益管理

2025-11-09

如何利用AnQiCMS的`archiveFilters`标签实现多维度内容筛选条件的动态显示?

在内容日益丰富的网站上,如何帮助访客快速找到他们感兴趣的信息,是提升用户体验和网站效率的关键。传统的固定分类导航往往难以满足用户多维度、个性化的筛选需求。这时候,AnQiCMS提供的`archiveFilters`标签便能大显身手,它能帮助我们动态展示多维度的内容筛选条件,让您的网站内容管理与呈现更加灵活和智能。 设想一下,如果您的网站上发布了大量的房源信息、商品列表或是行业报告

2025-11-09

AnQiCMS在显示文章内容时,如何将Markdown格式的内容自动渲染为HTML?

在安企CMS中,将Markdown格式的内容自动渲染为HTML,是系统提供的一项核心功能,旨在帮助内容创作者以简洁高效的方式发布富文本内容。这一过程并非神秘的黑箱操作,而是通过明确的设置和灵活的模板标签控制来实现的。 ### 核心机制:Markdown内容的自动渲染 安企CMS之所以能够将您输入的Markdown内容转化为精美的网页布局,其核心在于后台的智能处理和前端模板的解析能力

2025-11-09

如何在AnQiCMS前端页面集成并显示后台自定义的联系方式,如WhatsApp链接?

在AnQiCMS上,我们经常需要让访客以最便捷的方式联系到我们,而WhatsApp因其广泛的使用率,成为了许多企业和个人首选的联系工具。幸运的是,AnQiCMS在设计之初就充分考虑了内容和功能的灵活性,让您能够轻松地在后台自定义联系方式,并将其展示在网站的前端页面上。 这篇文章将详细为您介绍如何在AnQiCMS后台添加并管理像WhatsApp这样的自定义联系方式

2025-11-09

AnQiCMS的“全站内容替换”功能是否会即时影响前端内容的显示?

在内容运营中,有时我们需要对网站上的大量内容进行统一调整,无论是更新过期信息、修正品牌名称,还是优化内部链接,手动逐一修改无疑是巨大的工作量。AnQiCMS 提供了一个名为“全站内容替换”的强大功能,旨在帮助我们高效地解决这类问题。然而,许多用户在使用这个功能时可能会有一个疑问:全站内容替换操作完成后,网站前端的内容是否会立即同步更新,让访问者看到最新的修改呢? 要理解这个问题

2025-11-09

如何利用AnQiCMS的`tagList`标签显示与文章相关的标签列表及其链接?

在安QiCMS中管理和展示内容,标签(Tag)是一个非常实用的功能。它不仅能帮助您更好地组织文章内容,还能为用户提供更灵活的导航方式,并对搜索引擎优化(SEO)大有裨益。当读者浏览一篇文章时,如果能看到与其相关的标签列表,并能点击这些标签发现更多相似主题的内容,无疑会大大提升用户体验和网站的PV(页面浏览量)。 今天,我们就来深入了解如何在AnQiCMS中利用`tagList`标签

2025-11-09

AnQiCMS如何确保上传的JPG/PNG图片自动转换为WebP格式以优化前端加载显示?

在当今的数字时代,网站加载速度对用户体验和搜索引擎排名至关重要。其中,图片文件作为网页内容的重要组成部分,其加载效率往往直接影响整体性能。传统JPG和PNG格式的图片虽然广泛使用,但在文件体积上通常不如新兴的WebP格式高效。那么,如何让安企CMS(AnQiCMS)在图片上传时自动实现这一优化,从而提升网站的前端加载显示呢? 安企CMS提供了一项非常实用的内置功能

2025-11-09