如何在安企CMS模板中调用特定分类下的文章列表?

📅 👁️ 56

在安企CMS中管理和展示内容是其核心优势之一,而灵活调用特定分类下的文章列表更是网站内容运营中不可或缺的功能。无论您是想在首页展示某个专题的最新文章,还是在侧边栏显示当前分类下的热门推荐,安企CMS的模板标签都能帮助您轻松实现。

安企CMS的模板系统采用了类似Django模板引擎的语法,使用起来直观且强大。核心在于几个关键的模板标签及其参数,通过这些标签的组合,我们能够精确地控制需要展示的内容。

核心工具:archiveList 标签初探

要在安企CMS模板中调用文章列表,最主要的标签就是 archiveList。这个标签如同一个智能筛选器,能根据您设定的条件,从海量文章中精准挑选出符合要求的列表。

archiveList 标签支持多种参数,其中与调用特定分类文章列表最密切相关的就是 categoryIdmoduleId

  • categoryId: 这是指定分类的关键参数。您可以传入一个具体的分类ID,或者多个分类ID(用逗号分隔),来获取这些分类下的文章。
  • moduleId: 安企CMS支持灵活的内容模型,如“文章模型”、“产品模型”等。通过 moduleId 参数,您可以指定从哪个内容模型中获取文章。例如,moduleId="1" 通常代表文章模型,moduleId="2" 可能代表产品模型。
  • type: 这个参数决定了文章列表的类型,可以是 list(简单列表),page(带有分页功能的列表),或 related(相关文章)。
  • limit: 控制返回文章的数量。比如 limit="10" 会显示最新的10篇文章。
  • order: 指定文章的排序方式,如按发布时间倒序 (id desc)、浏览量倒序 (views desc) 等。
  • child: 一个非常实用的参数,决定是否包含子分类的文章。child=true(默认)会包含子分类,child=false 则只显示当前分类的文章。

了解了这些基础,我们就可以着手实际操作了。

实际操作:一步步实现特定分类文章列表调用

第一步:确定目标分类的ID

在调用特定分类文章列表之前,我们首先需要知道目标分类的ID。有几种方式可以获取:

  1. 从后台管理界面获取: 登录安企CMS后台,进入“内容管理” -> “文档分类”。在这里,您可以找到所有已创建的分类,并记录下您想要调用的分类的ID。
  2. 通过URL地址获取: 如果您正在浏览某个分类页面,其URL中通常会包含分类的ID(例如:/category/10.html 中的 10 就是分类ID)。
  3. 使用 categoryDetail 标签动态获取: 在模板中,如果您已经在一个分类的上下文中(比如正在渲染一个分类列表页),可以通过 categoryDetail 标签来获取当前分类的ID。例如:{% categoryDetail with name="Id" %} 会返回当前分类的ID。

假设我们已经明确要调用ID为 5 的“公司新闻”分类下的文章。

第二步:使用 archiveList 调用文章列表

现在,我们可以将分类ID传入 archiveList 标签来获取文章列表了。

场景一:获取指定分类的最新10篇文章(不带分页)

如果您只想在一个区域(例如侧边栏)显示某个分类的少量文章,可以使用 type="list"

{# 假设“公司新闻”分类的ID是5,文章模型ID是1 #}
<div class="news-list">
    <h3>公司新闻</h3>
    <ul>
        {% archiveList articles with categoryId="5" moduleId="1" type="list" limit="10" order="id desc" %}
            {% for article in articles %}
                <li>
                    <a href="{{ article.Link }}" title="{{ article.Title }}">
                        {{ article.Title }}
                    </a>
                    <span>发布于:{{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
                </li>
            {% empty %}
                <li>暂无公司新闻。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

在这个例子中:

  • archiveList articles:将获取到的文章列表赋值给 articles 变量。
  • categoryId="5":指定了要获取文章的分类ID。
  • moduleId="1":指定从文章模型中获取内容。
  • type="list":表示这是一个简单的文章列表,不涉及分页。
  • limit="10":限制只显示最新的10篇文章。
  • order="id desc":按照文章ID倒序排列,通常意味着最新发布的文章在前。
  • {% for article in articles %}:遍历 articles 变量中的每一篇文章。
  • {{ article.Link }}{{ article.Title }}:分别获取文章的链接和标题。
  • {{ stampToDate(article.CreatedTime, "2006-01-02") }}:将文章的发布时间戳格式化为“年-月-日”的日期格式。
  • {% empty %}:当 articles 列表中没有内容时,会显示 <li>暂无公司新闻。</li>,这是一种非常友好的用户体验。
场景二:在分类列表页动态显示文章,并支持分页

当您处于一个分类的页面时,通常希望显示该分类下的所有文章,并且支持用户进行分页浏览。此时,categoryId 的值可以动态获取,并且 type 需要设置为 page

{# 假设我们正在一个分类的详情页,当前分类ID可以通过 category.Id 获取 #}
<div class="category-articles">
    <h2>{% categoryDetail with name="Title" %}</h2> {# 显示当前分类标题 #}
    <ul>
        {% archiveList articles with categoryId=category.Id moduleId="1" type="page" limit="15" order="views desc" child=false %}
            {% for article in articles %}
                <li>
                    <a href="{{ article.Link }}" title="{{ article.Title }}">
                        {% if article.Thumb %}
                            <img src="{{ article.Thumb }}" alt="{{ article.Title }}" />
                        {% endif %}
                        <h4>{{ article.Title }}</h4>
                        <p>{{ article.Description|truncatechars:100 }}</p> {# 截取描述前100个字符 #}
                    </a>
                    <div class="article-meta">
                        <span>阅读:{{ article.Views }}</span>
                        <span>{{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
                    </div>
                </li>
            {% empty %}
                <li>此分类下暂无文章。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>

    {# 分页导航 #}
    <div class="pagination-area">
        {% pagination pages with show="5" %}
            <a href="{{ pages.FirstPage.Link }}" class="{% if pages.FirstPage.IsCurrent %}active{% endif %}">首页</a>
            {% if pages.PrevPage %}<a href="{{ pages.PrevPage.Link }}">上一页</a>{% endif %}
            {% for item in pages.Pages %}
                <a href="{{ item.Link }}" class="{% if item.IsCurrent %}active{% endif %}">{{ item.Name }}</a>
            {% endfor %}
            {% if pages.NextPage %}<a href="{{ pages.NextPage.Link }}">下一页</a>{% endif %}
            <a href="{{ pages.LastPage.Link }}" class="{% if pages.LastPage.IsCurrent %}active{% endif %}">尾页</a>
        {% endpagination %}
    </div>
</div>

在这个例子中:

  • categoryId=category.Id:动态获取当前分类的ID。category.Id 这个变量通常在访问分类页面时由系统自动提供,或者您可以先使用 {% categoryDetail categoryInfo with name="Id" %} 来获取并赋值给 categoryInfo.Id
  • type="page":开启了分页功能。
  • limit="15":每页显示15篇文章。
  • order="views desc":按照浏览量

相关文章

安企CMS如何自定义文章详情页的显示布局?

在使用安企CMS(AnQiCMS)构建网站时,我们常常需要让不同类型的文章或特定文章拥有独特的外观和排版,以更好地展示内容并提升用户体验。AnQiCMS 提供了灵活的机制,让用户能够根据需求自定义文章详情页的显示布局,无论是针对整个内容模型、特定分类,还是某一篇独立的文章。 理解并利用好这些定制能力,是发挥AnQiCMS内容管理优势的关键。下面将详细介绍如何一步步实现文章详情页的个性化布局

2025-11-08

如何获取并显示网站的用户或用户组的详细信息(如VIP等级、余额)?

在安企CMS中,实现网站用户或用户组详细信息的获取与展示,是构建个性化会员系统和丰富用户体验的关键一环。无论是显示用户的VIP等级、账户余额,还是其所属的用户组名称,AnQiCMS都提供了直观且强大的模板标签,帮助我们轻松实现这些功能。 ### 深入理解AnQiCMS的用户与用户组体系 AnQiCMS内置了完善的用户管理和用户组(VIP系统)功能。它允许网站管理员创建不同的用户组

2025-11-08

如何在AnQiCMS模板中自定义和输出Json-LD结构化数据以优化搜索引擎展现?

在当今的数字营销环境中,搜索引擎优化(SEO)的重要性不言而喻,而结构化数据则是提升网站在搜索引擎结果页(SERP)表现的关键因素之一。AnQiCMS作为一个专注于提供高效内容管理解决方案的系统,其在模板中灵活自定义和输出Json-LD结构化数据的功能,为网站运营者提供了强大的SEO优化工具。 ### 结构化数据:搜索引擎的“语言” Json-LD(JavaScript Object

2025-11-08

如何在留言或评论表单中集成验证码功能以防止垃圾信息?

网站留言和文章评论是网站与用户互动的重要桥梁,它们能有效提升内容活跃度和用户黏性。然而,这些开放的互动区域也常常成为垃圾信息发布者的目标,大量无意义或恶意信息不仅损害网站形象,更可能影响搜索引擎排名。为了有效遏制这类问题,为留言或评论表单集成验证码功能是一个行之有效的方法。 安企CMS作为一款高效、安全的建站工具,充分考虑到了内容运营中的常见挑战,并提供了便捷的解决方案

2025-11-08

安企CMS是否支持文章内容中图片的懒加载显示?

在内容管理系统中,图片的加载效率对网站性能和用户体验至关重要,特别是对于图片较多的文章页面。许多用户都会关心,安企CMS(AnQiCMS)在文章内容中是否支持图片的懒加载显示,以优化页面加载速度。 答案是肯定的,安企CMS **支持** 文章内容中图片的懒加载显示。这得益于其灵活的模板引擎和对内容展示的精细化控制。虽然安企CMS本身作为一个后端内容管理系统,不会直接在浏览器端执行懒加载逻辑

2025-11-08

如何为安企CMS网站设置多语言内容切换显示功能?

在当今全球化的互联网环境中,让网站能够支持多种语言显示,已成为许多企业拓展国际市场、服务多元用户群体的关键一步。安企CMS(AnQiCMS)作为一个功能强大的内容管理系统,内置了灵活的多语言支持机制,帮助用户轻松实现网站内容的多语言切换显示。 要为您的安企CMS网站设置多语言内容切换功能,我们需要理解两种主要的实现思路:一种是针对网站**界面文本的模板级翻译**

2025-11-08

安企CMS如何优化网站URL结构以提升搜索引擎显示效果?

在网站运营中,URL结构是影响搜索引擎可见性和用户体验的关键因素之一。一个清晰、有逻辑且对搜索引擎友好的URL,能让爬虫更好地理解网站内容,从而提升网站在搜索结果中的排名。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,提供了多项功能来帮助网站优化URL结构,以达到更好的搜索引擎显示效果。 ### 核心功能解析:安企CMS 如何打造友好的 URL 结构 **1. 伪静态规则

2025-11-08

如何在安企CMS中实现文章列表的分页显示?

在内容管理系统中,文章列表的分页显示是一项基本而重要的功能。它不仅能有效管理大量内容,提升网站的加载速度,避免用户面对无限滚动的页面而感到疲惫,更是搜索引擎优化(SEO)的关键一环,帮助搜索引擎更好地抓取和索引网站内容。对于使用安企CMS(AnQiCMS)的用户来说,实现文章列表的分页功能,得益于其灵活且类似Django的模板引擎,过程直观且强大。 安企CMS的模板系统为我们提供了两个核心标签

2025-11-08