在安企CMS中,archive/list 接口是获取网站文档列表的核心工具,它提供了丰富多样的参数,帮助我们精准地筛选和展示内容。其中,child 参数虽然看似简单,却在分类及其子分类的文档显示上扮演着至关重要的角色,直接影响着内容呈现的颗粒度。理解并善用这个参数,能让你的网站内容组织更加清晰、用户体验更佳。

默认情况下,当你通过 archive/list 接口获取某个分类下的文档时,child 参数的值被设定为 true。这意味着系统不仅会返回该分类自身包含的文档,还会自动包含其所有子分类乃至孙子分类中的文档。举个例子,如果你的网站有一个“新闻中心”大类,下面设有“国内新闻”和“国际新闻”两个子分类。当你在请求“新闻中心”的文档列表时,如果 child 参数为默认的 true,那么“国内新闻”和“国际新闻”下的所有文章都会一并显示出来。这种模式非常适合需要全面展示某一主题下所有相关内容的情境,让用户能够在一个页面上浏览到更广泛的信息。

然而,在某些场景下,我们可能需要更精确的内容控制。这时,child=false 参数就派上用场了。当你将 child 参数明确设置为 false 时,archive/list 接口的行为会发生显著变化。它将严格限制返回的文档范围,只包含那些直接归属于你所指定分类的文档,而完全排除其任何子分类中的内容。

继续以上面的“新闻中心”为例,如果你想创建一个专门展示“新闻中心”父分类下,且不属于任何子分类(如“国内新闻”或“国际新闻”)的“特别报道”或“编辑精选”文档列表,只需在调用接口时设置 categoryId 为“新闻中心”的ID,并同时传入 child=false。这样,返回的结果就只会是直接发布在“新闻中心”这个层级下的文章,而不会混入“国内新闻”或“国际新闻”的任何内容。

这种精细化的控制能力,为网站运营带来了更大的灵活性。当你希望某个分类页面作为其所有子分类内容的聚合入口时,保持 child=true(或不传此参数)是**选择。例如,一个“产品”分类页,可能需要展示所有产品线的文档,无论它们具体属于哪个子系列。相反,如果你希望一个分类页面只展示其自身的特色内容,作为独立的主题区,而不希望被子分类的内容“稀释”掉,那么设置 child=false 将是理想方案。这有助于为每个分类创建更聚焦、更具针对性的页面,避免信息过载,提升用户在特定分类下的内容发现效率。它也适用于创建导航菜单中某个父级分类的“纯粹”内容页,确保该页面的内容与子分类内容有所区隔。

总而言之,安企CMS的 child 参数在 archive/list 接口中提供了对文档列表显示范围的强大控制。child=true (默认值)用于广度展示,包含子分类内容;而 child=false 则用于深度聚焦,只显示当前分类的直接内容。根据你的网站内容结构和运营需求,灵活运用这一参数,能够有效地优化网站的内容组织和用户浏览体验。

常见问题 (FAQ)

  • Q1: 使用 child=false 后,如果我希望同时显示多个特定分类(包括一些父分类和一些子分类)的文档,应该怎么做? A1: 这种情况下,你需要在 categoryId 参数中传入多个分类的 ID,并用逗号隔开。例如,categoryId="1,5,10",系统会返回 ID 为 1、5、10 的分类下的直接文档。请注意,即使你传入的是父分类 ID,由于 child=false 的作用,它也只会返回该父分类直接包含的文档,而不会自动包含其子分类的文档。
  • Q2: child=false 参数是否会影响 type="related" 模式下的文档列表? A2: child=false 参数主要针对通过 categoryId 来限定文档范围的列表查询。在 type="related" 模式下,系统会根据指定的文档ID来查找相关文档,其逻辑更多地关注文档本身而非严格的分类层级。因此,child=false 参数对 type="related" 模式通常没有直接影响。
  • Q3: 如何知道一个分类是否有子分类,以便决定是否使用 child=false A3: 你可以使用 category/list 接口来获取分类列表。通过检查返回数据中每个分类的 parent_id 字段,你可以构建出分类层级关系。如果一个分类的 id 出现在其他分类的 parent_id 中,那么它就是一个拥有子分类的父分类,这时你就可以根据需求决定是否要在查询该父分类时使用 child=false