如何获取并循环显示文章或产品的列表?

📅 👁️ 54

在AnQiCMS中构建一个充满活力的网站,内容列表的展示是不可或缺的一环。无论是展示最新发布的文章、热门产品,还是特定分类下的内容,AnQiCMS强大的模板引擎都能帮助我们轻松实现。本文将深入探讨如何在AnQiCMS中获取并循环显示文章或产品的列表,助您灵活构建多样化的内容展示页面。

认识AnQiCMS的内容列表机制

AnQiCMS采用了类似Django的模板引擎语法,让内容展示变得直观且易于掌握。在AnQiCMS中,文章和产品都被视为内容的一种,它们共同使用一套灵活的内容模型体系。这意味着我们可以用统一的方式来获取和展示不同类型的内容列表。

核心的模板标签是我们操作内容的入口,它们通常以{% tag %}的形式出现,而要输出的变量则用{{ variable }}包裹。对于循环展示内容,for循环标签是我们的得力助手。

获取文章或产品列表:核心标签archiveList

要获取文章或产品的列表,archiveList标签是您的首选。这个标签非常灵活,能够根据您的需求筛选、排序和限制内容。

使用archiveList标签时,通常会指定一个变量名来存储获取到的内容列表,例如archivesproducts。基本的结构如下:

{% archiveList archives with moduleId="1" limit="5" %}
    {% for item in archives %}
        {# 在这里展示每个内容项的详细信息 #}
    {% endfor %}
{% endarchiveList %}

接下来,我们详细了解archiveList的一些常用参数,它们是定制内容列表的关键:

  1. moduleId:指定内容模型 AnQiCMS支持自定义内容模型,常见的有文章模型(通常moduleId="1")和产品模型(通常moduleId="2")。通过这个参数,您可以明确指定要获取哪种类型的内容。

    • 例如,获取文章列表:moduleId="1"
    • 例如,获取产品列表:moduleId="2"
  2. categoryId:筛选特定分类 如果您只想显示某个或某些特定分类下的内容,可以使用categoryId。您可以传入单个分类的ID,也可以用逗号分隔传入多个ID。

    • 例如,获取分类ID为10的文章:categoryId="10"
    • 例如,获取分类ID为10、12、15的产品:categoryId="10,12,15"
    • 如果您希望它不自动读取当前页面分类的ID,而是获取全站内容,可以设置为categoryId="0"
  3. limit:控制显示数量或分页范围 limit参数用于限制显示的内容数量。它有两种工作模式:

    • 限制数量limit="5" 将只显示前5条内容。
    • 偏移模式limit="2,10" 将从第2条内容开始,获取接下来的10条内容(常用于“从…开始显示”的场景)。
  4. order:指定排序方式 内容的显示顺序非常重要。order参数允许您根据多种条件进行排序:

    • id desc:按内容ID倒序排列(最新发布的内容在前)。
    • views desc:按浏览量倒序排列(热门内容在前)。
    • sort desc:按后台设置的自定义排序字段倒序排列。
  5. type:列表类型决定功能 type参数定义了列表的用途,这会影响到其他参数的生效方式:

    • type="list":默认模式,只显示limit指定数量的内容,不带分页。
    • type="page":分页模式,结合pagination标签可以实现完整的翻页功能。
    • type="related":相关内容模式,通常用于详情页,自动查找与当前内容相关的其他内容。
  6. flag:筛选推荐属性 在后台发布内容时,可以为内容设置多种推荐属性(如头条[h]、推荐[c]、幻灯[f]等)。通过flag参数,您可以只显示具有特定属性的内容。

    • 例如,只显示“推荐”属性的文章:flag="c"
    • 您也可以使用excludeFlag来排除特定属性的内容。
  7. q:搜索关键词type="page"时,q参数可以用于搜索内容标题中包含特定关键词的内容。如果您在URL中包含?q=关键词的参数,AnQiCMS也会自动读取并应用搜索。

循环遍历与数据访问

一旦使用archiveList获取到内容列表,您就可以通过{% for item in archives %}这样的结构来逐一访问列表中的每个内容项。在循环内部,item就是当前的内容对象,您可以访问它的各种属性,例如:

  • {{ item.Id }}:内容ID
  • {{ item.Title }}:内容标题
  • {{ item.Link }}:内容链接
  • {{ item.Description }}:内容摘要/描述
  • {{ item.Thumb }}:内容缩略图
  • {{ item.Logo }}:内容封面大图
  • {{ item.Views }}:内容浏览量
  • {{ stampToDate(item.CreatedTime, "2006-01-02") }}:格式化后的发布时间(stampToDate是日期格式化标签,"2006-01-02"是Go语言的时间格式化标准)

示例:展示最新文章标题和链接

<div class="latest-articles">
    <h3>最新文章</h3>
    <ul>
        {% archiveList articles with moduleId="1" order="id desc" limit="5" %}
            {% for item in articles %}
                <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
            {% empty %}
                <li>暂无文章</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

实现分页功能:pagination标签

对于内容量较大的列表,分页是提升用户体验的关键。当archiveList标签的type参数设置为"page"时,它会配合pagination标签一同工作,实现完整的分页导航。

pagination标签的使用方式:

{% pagination pages with show="5" %}
    {# 在这里组织分页链接,例如上一页、下一页、页码等 #}
{% endpagination %}

pagination标签会创建一个pages对象,其中包含丰富的分页信息:

  • pages.TotalItems:总内容数量
  • pages.TotalPages:总页数
  • `pages.Current

相关文章

如何动态生成并显示网站的顶部或底部导航菜单?

在网站运营中,顶部和底部导航菜单扮演着至关重要的角色,它们不仅是用户探索网站内容的向导,也是搜索引擎理解网站结构的关键。一个设计良好、动态生成的导航菜单,能够极大地提升用户体验和网站的可维护性。安企CMS(AnQiCMS)提供了一套直观而强大的功能,让您轻松实现这一目标。 ### 后台配置:让您的菜单活起来 要在安企CMS中动态生成和显示导航菜单,首先需要在后台进行菜单内容的配置

2025-11-07

安企CMS中如何生成并显示多层级的面包屑导航?

在网站内容运营中,清晰的导航路径对于用户体验和搜索引擎优化都至关重要。一个好的面包屑导航能帮助用户快速了解当前页面在网站结构中的位置,并方便他们回溯到上一级或更高级别的页面。安企CMS(AnQiCMS)深知这一点,因此提供了强大且易于使用的面包屑导航功能,让网站管理者能够轻松生成并显示多层级的面包屑。 安企CMS中实现面包屑导航的核心,在于其内置的 `breadcrumb` 标签

2025-11-07

如何为网站首页配置并显示SEO标题、关键词和描述(TDK)?

在网站运营中,网站首页的搜索引擎优化(SEO)至关重要。一个精心配置的SEO标题、关键词和描述(TDK)能够显著提升网站在搜索引擎结果页(SERP)中的可见度,吸引更多潜在访客。安企CMS(AnQiCMS)作为一个为SEO友好而设计的系统,提供了直观便捷的方式来管理这些关键信息。 本文将引导你了解如何在AnQiCMS中为你的网站首页配置并显示SEO标题、关键词和描述。 --- ### 一

2025-11-07

如何在模板中获取并显示后台设置的联系方式(如电话、邮箱、微信)?

在网站运营中,清晰地展示联系方式对于提升用户信任和促进互动至关重要。无论是咨询产品、寻求支持,还是进行商务合作,便捷的联系渠道都能大大提高转化率。安企CMS(AnQiCMS)深知这一点,为您提供了灵活且强大的功能,让您能轻松地在网站模板中获取并显示后台设置的各种联系信息。 接下来,我们就一起看看如何在安企CMS中,把后台设置的联系方式,比如电话、邮箱、微信等,自然流畅地呈现在您的网站上

2025-11-07

如何在AnQiCMS中显示特定分类下的文章或产品列表?

在AnQiCMS中,显示特定分类下的文章或产品列表是网站内容管理中的常见需求。无论是为了构建导航菜单下的子页面,还是在首页展示不同模块的精选内容,AnQiCMS都提供了灵活而强大的方式来实现这一目标。理解其内容组织逻辑和模板标签的使用,您就能轻松地将所需内容呈现在网站上。 ### 理解AnQiCMS的内容模型与分类 首先,AnQiCMS内容的组织方式是基于“内容模型”和“分类”的

2025-11-07

如何在文档列表或详情页显示文档的推荐属性(如头条、推荐)?

在内容管理系统中,突出网站上的重点内容对于吸引用户、提升页面浏览量至关重要。安企CMS(AnQiCMS)提供了强大的文档推荐属性功能,让网站运营者能够灵活地标记和展示文章。本文将详细介绍如何在安企CMS的文档列表和详情页中,巧妙地利用这些推荐属性,让您的网站内容更加生动和具有引导性。 ### 了解安企CMS的推荐属性 安企CMS为每篇文档设计了多种推荐属性

2025-11-07

如何显示文章或产品的详细内容,并支持图片懒加载?

安企CMS内容详情展示与图片懒加载实践指南 在今天的数字世界里,网站内容的呈现方式直接影响着用户体验和搜索引擎的排名。无论是详细的文章介绍,还是精美的产品展示,如何高效、美观地将内容呈现给访问者,并且确保网站加载速度,是每一位运营者都需要面对的挑战。安企CMS(AnQiCMS)作为一款功能强大的内容管理系统,为我们提供了灵活的工具来应对这些挑战。本文将深入探讨如何在安企CMS中充分利用其功能

2025-11-07

如何获取并显示当前文档的上/下一篇内容?

在内容型网站中,为访客提供便捷的导航体验至关重要,其中“上一篇”和“下一篇”功能是文章详情页的标配。它们不仅能引导用户继续浏览更多内容,有效提升网站的PV(页面浏览量),还能在一定程度上帮助搜索引擎更好地理解网站的内容结构,从而优化SEO表现。AnQiCMS 充分考虑了这一需求,为我们提供了非常简单直观的模板标签,帮助我们轻松实现这一功能。 ### 了解 AnQiCMS 的模板机制 在

2025-11-07