在使用安企CMS管理网站内容时,我们经常会遇到需要精确控制文档显示范围的情况。例如,当您希望在某个父级分类页面上,只展示该分类直接发布的文档,而不涉及其下属子分类中的内容时,就需要对文档列表的获取方式进行一番调整。安企CMS提供了非常灵活的API接口,让您轻松实现这一需求。
要确保获取到的文档列表只包含父级分类下的内容,而自动排除所有子分类的文档,核心在于巧妙利用archiveList接口中的categoryId和child这两个参数。
首先,您会使用到安企CMS的获取文档列表接口,其API调用地址是 {域名地址}/api/archive/list。这是一个强大的接口,允许您根据多种条件筛选和排序文档。
当您指定了一个categoryId时,默认情况下,安企CMS会很“聪明”地将该分类及其所有子分类下的文档都一并返回。这在构建聚合页面时非常方便。然而,如果您的设计意图是只展示当前分类的直接内容,这种默认行为可能就不太合适了。
此时,child参数就派上了用场。child参数是一个布尔值(boolean),它决定了是否包含所有子分类的文档。它的默认值是 true,意味着会包含子分类。而当您需要限定范围,只显示当前指定categoryId的文档时,只需将child参数设置为 false。
举个例子,假设您的网站有一个名为“新闻中心”的父级分类,其categoryId为 100。在“新闻中心”下,可能还有“国内新闻”、“国际新闻”等子分类。如果您想在“新闻中心”的列表中,仅显示直接归属到“新闻中心”这个分类的文档,而不包括“国内新闻”或“国际新闻”中的文章,您就可以这样构造您的API请求:
GET {域名地址}/api/archive/list?categoryId=100&child=false
通过这样的请求,安企CMS会准确地为您筛选出那些category_id正好是 100的文档,而所有parent_id为 100(即“新闻中心”的子分类)的文档则会被巧妙地排除在外。
这种精细化的控制能力,对于内容运营来说意义重大。它让您可以根据页面的具体功能和用户浏览习惯,呈现最贴切、最相关的内容。比如,在一个分类的介绍页,您可能只想展示该分类本身的概览性文章;而在一个综合列表页,您又可以利用默认的child=true(或省略child参数)来全面呈现所有相关内容。这种灵活性确保了网站内容架构的清晰度和用户体验的优化。
常见问题解答 (FAQ)
Q1: 如果我想显示指定分类及其所有子分类的文档,应该怎么操作?
A1: 如果您想获取指定分类下的所有文档,包括其子分类中的文档,那么您可以省略child参数,或者明确将其设置为 child=true,因为 true是child参数的默认行为。例如:GET {域名地址}/api/archive/list?categoryId=100 就能达到这个效果。
Q2: 我能否同时获取多个父级分类下的文档,并且同样不包含这些父级分类的子分类?
A2: 可以的。categoryId参数支持传入用逗号隔开的多个分类ID。所以,您可以这样构造请求:GET {域名地址}/api/archive/list?categoryId=100,101,102&child=false。这将返回categoryId为100、101或102的直接文档,而不会包含这些分类的任何子分类中的文档。
Q3: 这个child=false参数是否也适用于按模型ID(moduleId)获取文档列表?
A3: 是的,child=false参数主要与categoryId结合使用,用来控制特定分类层级的文档包含关系。moduleId用于筛选特定文档模型(如文章、产品等)下的所有文档。您可以先通过moduleId指定文档模型,再通过categoryId和child=false进一步细化过滤结果。例如:GET {域名地址}/api/archive/list?moduleId=1&categoryId=100&child=false 将获取文章模型下、且直接属于分类ID为100的文档。