`archiveList`标签如何根据分类ID、推荐属性等条件获取文档列表?

作为一名资深的安企CMS网站运营人员,我深知内容管理系统标签的灵活性和强大功能是实现高效内容运营的关键。archiveList标签作为AnQiCMS中用于获取文档列表的核心工具,其参数的精妙运用能帮助我们精确地呈现所需内容,无论是构建网站首页的推荐文章,还是在分类页面展示特定文档,乃至在详情页提供相关推荐,都离不开对这个标签的熟练掌握。

archiveList标签概述

archiveList标签在AnQiCMS中扮演着获取文档列表的关键角色。它允许运营人员根据多种条件筛选、排序并展示网站中的文档内容。通过合理配置其参数,我们可以构建出丰富多样的内容展示区块,满足不同页面和用户需求。该标签的基本用法是将其包裹在{% archiveList 变量名称 with 参数 %}{% endarchiveList %}之间,并通过循环(通常是for循环)来遍历获取到的文档数据。

基于分类与模型的文档筛选

在内容管理中,文档通常归属于特定的内容模型(如文章、产品)和分类。archiveList标签通过moduleIdcategoryId参数提供了基础且强大的筛选能力。

moduleId参数用于指定要获取文档列表的内容模型ID。例如,如果您的网站有文章模型和产品模型,通过设置moduleId="1"可以只获取文章,而moduleId="2"则只获取产品。这种方式确保了内容类型的准确性,避免了不同模型内容的混淆。

categoryId参数则允许您获取特定分类下的文档。您可以指定单个分类ID,如categoryId="10",也可以通过逗号分隔指定多个分类ID,例如categoryId="10,12,15",以获取这些分类下的所有文档。如果您想获取当前页面所属分类的文档列表,通常无需指定categoryId,系统会尝试自动读取。然而,如果您希望明确不读取当前分类ID,则可以使用categoryId="0"来避免自动关联。为了进一步细化筛选,excludeCategoryId参数允许您排除一个或多个分类ID,确保某些分类下的文档不会出现在列表中。

此外,child参数对于管理分类层次结构下的内容展示至关重要。默认情况下,childtrue,意味着当您指定一个父分类ID时,列表将包含该父分类及其所有子分类下的文档。如果您只想显示当前指定分类(不含子分类)的文档,可以将其设置为child=false

利用推荐属性进行内容策展

AnQiCMS提供了丰富的推荐属性(flag)来标记文档,这些属性是内容运营中进行内容策展、突出重要信息的强大工具。archiveList标签的flag参数能够精确地根据这些属性筛选文档。

每个推荐属性都对应一个特定的字母:

  • 头条[h]: 用于网站最重要的、最突出的内容。
  • 推荐[c]: 普遍的推荐内容,在各类推荐位中常见。
  • 幻灯[f]: 通常用于轮播图或幻灯片展示的内容。
  • 特荐[a]: 特别推荐的内容,优先级高于普通推荐。
  • 滚动[s]: 适用于滚动新闻、公告等动态展示。
  • 加粗[h]: 在列表中可能以加粗样式显示,强调标题。
  • 图片[p]: 含有重要图片,可能在图片展示区域出现。
  • 跳转[j]: 内容可能是一个外部链接或站内跳转。

通过设置flag参数,例如flag="c",您可以轻松地提取出所有被标记为“推荐”的文档。同时,excludeFlag参数则可以帮助您排除具有特定推荐属性的文档,例如excludeFlag="j"可以避免在常规列表中出现跳转类型的文档。如果您需要在前端列表项中明确显示每个文档的推荐属性,showFlag=true参数将会在文档数据中包含Flag字段。

除了推荐属性,您还可以通过userId参数来获取特定作者发布的文档,这对于个人博客或多作者平台的运营尤为有用。parentId参数则允许您获取指定上级文档下的子文档,这在构建具有父子关系的文档结构时非常方便。

排序、数量与显示类型控制

archiveList标签提供了灵活的控制选项,以决定文档的呈现顺序、数量和列表类型。

order参数用于指定文档的排序规则。常见的排序方式包括:

  • order="id desc":按照文档ID降序排列,通常意味着最新发布的文档排在前面。
  • order="views desc":按照文档的浏览量降序排列,用于展示热门文档。
  • order="sort desc":按照后台自定义的排序字段降序排列,为运营人员提供手动调整顺序的灵活性。

limit参数控制列表显示的文档数量。例如,limit="10"将只显示前10条文档。它还支持偏移模式,如limit="2,10",表示从第2条文档开始,获取接下来的10条文档。

type参数决定了列表的展示行为:

  • type="list":用于常规的文档列表展示,只显示limit参数指定的数量。
  • type="page":用于需要分页功能的文档列表,通常会与pagination标签结合使用,以生成分页导航。
  • type="related":专门用于获取相关文档。在这种模式下,标签会根据当前文档的上下文(如分类、关键词)智能地获取相关内容。related类型还支持like参数,如like="keywords"会根据文档的关键词获取相关文档,而like="relation"则会展示后台手动设置的相关文档。

type="page"时,q参数便可发挥作用。它允许您通过指定关键词(如q="seo")来搜索文档标题中包含该关键词的内容。更智能的是,如果URL中已存在名为q的查询参数,archiveList会自动读取并将其应用于搜索过滤。

高级筛选与多站点内容整合

除了上述功能,archiveList还支持更高级的筛选和多站点管理能力。

“自定义筛选参数”功能非常强大,它允许您利用后台内容模型中自定义的字段进行筛选。只需在文档额外配置中定义可筛选的字段,然后将这些字段作为URL查询参数附加到页面链接上,archiveList便能根据这些参数动态筛选文档。例如,如果您的内容模型有一个名为sex的自定义字段,您可以通过URL参数sex=男来过滤出所有sex字段为“男”的文档。

对于部署了多个网站的运营团队,siteId参数是进行跨站点内容调用的关键。通常情况下无需手动填写,但当您需要在一个站点中显示另一个站点的内容时,指定siteId即可实现数据的精准调用。

combineIdcombineFromId是为特殊组合场景设计的字段。它们允许您将多个文档数据组合在一个列表中,并以此生成独特的链接和标题。例如,构建“从A地到B地的旅游线路”时,combineId可以帮助您将“A地”文档与列表中的“B地”文档结合,从而在标题中显示两者的信息,并生成包含两者ID的URL。

在模板中访问文档数据

archiveList标签成功获取文档列表后,您可以在for循环中访问每个文档对象的具体数据。每个文档对象(通常命名为item)都包含了丰富的字段,例如:

  • item.Id:文档ID
  • item.Title:文档标题
  • item.Link:文档链接
  • item.Description:文档描述
  • item.Thumb:文档缩略图地址
  • item.Logo:文档封面首图地址
  • item.Views:文档浏览量
  • item.CreatedTime:文档发布时间戳(可配合stampToDate过滤器格式化)
  • item.CategoryId:所属分类ID
  • item.Flag:文档推荐属性(需showFlag=true

通过这些字段,您可以灵活地构建文档列表的展示样式。例如,使用{{stampToDate(item.CreatedTime, "2006-01-02")}}可以将时间戳格式化为日期,{{item.Thumb}}可以显示文档的缩略图。

实际操作中的archiveList应用

在实际的网站运营中,archiveList标签的应用场景非常广泛:

  • 网站首页: 用于展示最新文章、热门产品、精选推荐等模块。
  • 分类页面: 列出特定分类下的所有文档,并支持分页和筛选。
  • 搜索结果页: 结合q参数动态展示用户搜索到的相关文档。
  • 文档详情页: 获取同分类或同关键词的相关文档,增加用户停留时间。
  • 专题页面: 聚合特定flag属性的文档,形成专题内容。

熟练掌握archiveList标签及其各项参数,将使您在AnQiCMS的内容运营中如鱼得水,无论是构建复杂的商业网站,还是运营个人媒体,都能更高效、更精准地管理和呈现内容。


常见问题解答

Q1: 如何在archiveList中同时获取多个分类下的文档?

**A1