AnQiCMS的文档列表标签`archiveList`如何根据不同条件(分类、模型、推荐属性)筛选并显示内容?

📅 👁️ 68

在使用安企CMS构建网站时,灵活地展示内容是实现出色用户体验和高效内容管理的关键。其中,archiveList标签无疑是内容展示的核心工具,它能帮助我们根据各种条件筛选并呈现文章、产品或其他自定义内容模型的数据。本文将深入探讨archiveList标签如何根据分类、内容模型、推荐属性等条件,精确地筛选并展示您想要的内容。

灵活驾驭内容展示:archiveList标签的核心作用

archiveList标签是安企CMS模板中用于获取文档列表的强大标签。无论您想在首页展示最新文章、在分类页列出特定产品、或者在侧边栏推荐热门内容,它都能通过丰富的参数配置来满足您的需求。它的基本使用方式通常是这样的:

{% archiveList archives with type="list" limit="10" %}
    {% for item in archives %}
        <!-- 在这里展示您的内容 -->
        <a href="{{ item.Link }}">{{ item.Title }}</a>
    {% endfor %}
{% endarchiveList %}

这里,archives是您定义的变量名,type="list"表示获取普通列表,limit="10"则限制显示10条内容。接下来,我们将看到如何通过更多参数,实现更精细化的内容筛选。

根据分类精确筛选内容

分类是组织网站内容的基石。archiveList标签提供了categoryIdexcludeCategoryId参数,让您可以轻松地根据分类来筛选内容。

如果您希望显示某个特定分类下的所有内容,只需使用categoryId参数并指定该分类的ID。例如,要显示ID为10的“公司新闻”分类下的文章:

{% archiveList latestNews with categoryId="10" type="list" limit="5" %}
    {% for news in latestNews %}
        <p><a href="{{ news.Link }}">{{ news.Title }}</a></p>
    {% endfor %}
{% endarchiveList %}

如果您的内容分布在多个不连续的分类中,categoryId也支持通过逗号分隔来指定多个分类ID,例如categoryId="10,12,15"

反之,如果您想列出网站所有内容,但排除掉某个或某些分类下的内容,可以使用excludeCategoryId。比如,您想在“所有文章”列表中排除“公司新闻”分类,就可以这样设置:

{% archiveList allArticles with excludeCategoryId="10" type="list" limit="10" %}
    {% for article in allArticles %}
        <h4><a href="{{ article.Link }}">{{ article.Title }}</a></h4>
    {% endfor %}
{% endarchiveList %}

此外,当您在某个分类页面使用archiveList时,它会默认读取当前分类的ID。如果您想明确指定不自动读取当前分类ID,或者只想显示当前分类而不包括其子分类的内容,child参数就派上用场了。child参数默认值为true,即包含子分类内容。将其设置为false,即可仅显示当前分类下的直接内容:

{# 仅显示当前分类下的文档,不包括子分类 #}
{% archiveList currentCategoryDocs with categoryId="0" child=false type="list" limit="10" %}
    {% for doc in currentCategoryDocs %}
        <p>{{ doc.Title }}</p>
    {% endfor %}
{% endarchiveList %}

请注意,当categoryId="0"时,archiveList不会自动从当前页面获取分类ID,这在某些特殊布局中会非常有用。

基于内容模型定义内容结构

安企CMS的“内容模型”功能非常强大,它允许您自定义内容的结构,例如定义一个“文章”模型,一个“产品”模型,甚至是“案例”或“服务”模型。archiveList标签通过moduleId参数,可以轻松地从特定的内容模型中获取数据。

要使用这个功能,您需要首先了解您所需要调用的内容模型的ID。例如,假设您的“文章”模型的ID是1,“产品”模型的ID是2。那么,要在一个页面上分别展示最新的文章和推荐的产品,您可以这样操作:

{# 显示最新的文章,假设文章模型ID为1 #}
<h3>最新文章</h3>
{% archiveList latestArticles with moduleId="1" order="id desc" type="list" limit="5" %}
    {% for article in latestArticles %}
        <p><a href="{{ article.Link }}">{{ article.Title }}</a></p>
    {% endfor %}
{% endarchiveList %}

{# 显示推荐的产品,假设产品模型ID为2 #}
<h3>推荐产品</h3>
{% archiveList recommendedProducts with moduleId="2" flag="c" order="id desc" type="list" limit="5" %}
    {% for product in recommendedProducts %}
        <p><a href="{{ product.Link }}">{{ product.Title }}</a></p>
    {% endfor %}
{% endarchiveList %}

通过moduleId,您可以确保只检索和显示符合特定内容结构的数据,这对于构建多类型内容网站至关重要。

利用推荐属性突出重点内容

在安企CMS的文档发布界面,内容可以被标记上各种“推荐属性”,例如“头条[h]”、“推荐[c]”、“幻灯[f]”、“特荐[a]”等。这些属性是为了在网站前端灵活地突出显示特定内容而设计的。archiveList标签的flagexcludeFlag参数正是用来利用这些属性进行筛选。

如果您想在网站的某个区域(比如首页的轮播图)展示被标记为“幻灯”的内容,您可以这样做:

{# 显示标记为“幻灯”的内容,假设属性为f #}
<div class="slideshow">
    {% archiveList slideshowItems with flag="f" type="list" limit="5" %}
        {% for item in slideshowItems %}
            <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
            <h3>{{ item.Title }}</h3>
        {% endfor %}
    {% endarchiveList %}
</div>

flag参数可以指定一个或多个推荐属性的字母(例如flag="c"表示推荐,flag="h,f"表示头条或幻灯)。

同样,您也可以使用excludeFlag来排除掉带有特定属性的内容。比如,您想列出所有文章,但排除掉已经被设为“头条”的文章,就可以这样写:

{# 显示所有文章,但排除掉“头条”内容 #}
{% archiveList regularArticles with moduleId="1" excludeFlag="h" type="list" limit="10" %}
    {% for article in regularArticles %}
        <p>{{ article.Title }}</p>
    {% endfor %}
{% endarchiveList %}

如果您希望在内容列表中,除了显示内容本身,还能看到它被标记了哪些推荐属性,可以使用showFlag=true参数。然后,在循环内部,通过{{item.Flag}}来获取并显示这些属性。

结合多种条件,实现更灵活的内容展示

archiveList标签的强大之处在于可以组合使用上述的多种筛选条件,以及其他辅助参数,来构建高度定制化的内容列表。

例如,您可能需要在一个“产品中心”页面,展示“产品模型(moduleId=2)”下“推荐(flag=c)”的、且属于“电子产品(categoryId=20)”分类的最新五款产品:

{% archiveList featuredElectronics with moduleId="2" categoryId="20" flag="c" order="id desc" type="list" limit="5" %}
    {% for product in featuredElectronics %}
        <div class="product-card">
            <img src="{{ product.Thumb }}" alt="{{ product.Title }}">
            <h4><a href="{{ product.Link }}">{{ product.Title }}</a></h4>
            <p>{{ product.Description }}</p>
        </div>
    {% endfor %}
{% endarchiveList %}

除了上述的核心筛选参数,archiveList还提供了其他实用参数:

  • order:控制内容的排序方式,例如order="id desc"(按ID倒序,即最新发布)、order="views desc"(按浏览量倒序,即最热门)。
  • limit:限制显示的内容数量,例如limit="10"。它还支持offset模式,如limit="2,10"表示从第3条内容开始取10条。
  • type:决定列表的类型。type="list"用于普通列表,type="page"用于需要分页的列表(通常与pagination标签配合使用),type="related"用于获取相关内容(根据当前文档的关键词或指定关系)。
  • q:用于搜索关键词,仅在type="page"时生效,实现站内搜索功能。
  • combineId / combineFromId: 用于在列表中附加或前置一个文档进行组合显示,这在旅游线路、产品对比等场景中非常有用。

通过这些参数的巧妙组合,您可以轻松地在网站的任何位置构建出符合业务逻辑和用户需求的动态内容模块,极大提升了安企CMS在内容运营方面的灵活性。


常见问题 (FAQ)

Q1: 我想在分类页面显示该分类下所有文章,并且需要分页功能,应该怎么做? A1: 您可以使用archiveList标签,并将type参数设置为page。例如:{% archiveList articles with type="page" limit="10" %}。该标签会默认读取当前分类的ID。然后,您还需要结合pagination标签来渲染分页导航。

Q2: 如果我的内容模型自定义了额外的字段,我可以通过archiveList标签筛选这些自定义字段吗? A2: archiveList标签本身不直接提供自定义字段的筛选参数,但它支持通过URL的query参数进行筛选,前提是在内容模型的额外自动配置中,将这些字段设置为可筛选的。例如,如果您的内容模型有一个可筛选的color字段,当用户访问yourwebsite.com/products?color=red时,archiveList会自动根据URL中的color=red来筛选内容。

Q3: 如何在一个页面中展示多个不同条件筛选出的内容列表,比如“最新文章”和“热门产品”? A3: 您完全可以在同一个页面上使用多个archiveList标签。关键在于为每个archiveList指定一个不同的变量名称。例如,{% archiveList latestArticles ... %}{% archiveList popularProducts ... %}。这样,每个标签都会独立地获取并管理自己的内容列表,互不干扰。

相关文章

在AnQiCMS中,如何通过配置伪静态规则来优化URL结构,改善内容在搜索引擎中的显示?

在内容管理系统中,URL结构的重要性不言而喻。一个清晰、简洁且富有含义的URL不仅能提升用户体验,更是搜索引擎优化(SEO)的关键一环。在AnQiCMS中,通过精心配置伪静态规则,我们能够将那些原本可能带有复杂参数的动态URL转化为静态形式,从而让网站内容在搜索引擎中获得更好的显示效果。 ### 理解伪静态:为何它对您的网站至关重要? 想象一下,一个网页的地址是`www

2025-11-08

如何自定义AnQiCMS内容模型以满足不同内容类型(如文章、产品)的展示需求?

在当今快速变化的数字世界里,网站内容早已不再是简单的文章或产品介绍。为了精准触达用户、提升转化,我们往往需要针对不同类型的内容,量身定制其展示形式和数据结构。AnQiCMS(安企内容管理系统)深谙此道,它提供的灵活内容模型功能,正是解决这一挑战的强大工具。 ### 理解AnQiCMS内容模型的核心价值 你可能运营着一个企业网站,既要发布行业新闻、技术文章,又要展示详细的产品参数和成功案例

2025-11-08

AnQiCMS模板中如何正确使用双花括号`{{}}`和百分号`{% %}`标签控制内容的显示逻辑?

在使用安企CMS(AnQiCMS)构建和管理网站时,灵活运用模板语言是提升效率和实现个性化展示的关键。其中,双花括号 `{{}}` 和百分号标签 `{% %}` 是模板文件中控制内容显示逻辑的两位核心“角色”。它们各自承担着不同的职责,理解并正确使用它们,能帮助您轻松驾驭AnQiCMS的强大模板功能。 ### 一、内容的“发声筒”:双花括号 `{{}}` 的妙用 双花括号 `{{}}`

2025-11-08

AnQiCMS如何启用Markdown编辑器并正确显示数学公式和流程图?

在内容创作日益丰富的今天,纯文本已难以满足表达复杂概念的需求。无论是学术文章中复杂的数学公式,还是项目管理中清晰的流程图,若能直观地呈现在网页上,无疑能极大地提升内容的专业性和用户体验。安企CMS(AnQiCMS)深知这一需求,通过内置的Markdown编辑器和灵活的前端配置,让您能够轻松实现这些高级内容展示。 本文将详细介绍如何在AnQiCMS中启用Markdown编辑器

2025-11-08

如何利用AnQiCMS的`archiveDetail`标签,精细化获取和展示指定文档的详细内容及自定义字段?

在AnQiCMS中管理和展示网站内容,`archiveDetail`标签无疑是核心利器之一。它允许我们深入到每一个具体的文档,无论是文章、产品还是其他自定义类型,从而提取并呈现其详尽信息,甚至包括那些根据业务需求量身定制的自定义字段。理解并灵活运用这个标签,能让我们的网站内容展示更加精准和丰富。 ### `archiveDetail`标签的基础与进阶使用 当我们处在一个文档的详情页面时

2025-11-08

安企CMS模板中,`pluralize`过滤器如何将单个单词转换为复数形式?

在安企CMS的模板设计中,我们经常需要处理根据数量变化而呈现不同形式的文字,其中最常见的场景就是单词的单复数转换。想象一下,如果您的网站显示“1篇文章”和“2篇文章s”,这显然是不够专业的。为了解决这一问题,安企CMS提供了非常实用的`pluralize`过滤器,它能帮助我们在模板中轻松实现单词的复数形式转换,让内容表达更加自然和智能。 ### `pluralize`过滤器是什么

2025-11-08

如何使用`pluralize`过滤器为`customer`等常规名词生成复数形式,例如`customers`?

在网站内容呈现中,尤其是在显示数量相关的文本时,准确地使用名词的单复数形式至关重要。一个细微的语法错误,比如在数量为多个时仍使用单数形式,可能会影响用户体验,甚至降低网站内容的专业度。幸运的是,AnQiCMS 提供了一个非常实用的工具——`pluralize` 过滤器,它能帮助我们在模板中轻松解决这个问题,确保内容动态且语法正确。 ### 什么是 `pluralize` 过滤器

2025-11-08

`pluralize`过滤器支持自定义复数后缀吗?例如将`cherry`转换为`cherries`需要如何配置?

在网站内容运营中,内容的精准性和用户体验是至关重要的。特别是当我们需要根据数量来动态调整词语的单复数形式时,如果手动处理,不仅耗时耗力,还容易出错。幸运的是,AnQiCMS 模板引擎提供了非常便捷的过滤器来解决这类问题,其中 `pluralize` 过滤器就是一把利器。它能够根据数值自动为单词添加或调整复数后缀,让您的网站内容更加流畅和专业。 那么,`pluralize`

2025-11-08