在网站运营中,我们经常需要灵活地控制内容的展示。比如,您可能希望在首页展示最新文章,但又不希望包含某个特定的分类,像“内部通知”或“已归档内容”;或者在一个产品列表中,您想要排除那些“已停产”或“内部测试”的产品分类,以保持面向用户的界面简洁明了。
安企CMS提供了非常便捷而强大的功能来满足这类需求。通过巧妙运用模板标签中的archiveList,我们可以轻松地在文档列表中排除特定分类的内容,让您的网站内容展示更加精准和有序。
精准控制:如何排除特定分类内容?
安企CMS的archiveList标签是我们在模板中调用文档列表的核心工具。它功能丰富,可以根据多种条件筛选和排序文档。而当我们希望在某个文档列表中排除特定的分类时,archiveList标签提供了一个非常实用的参数——excludeCategoryId。
这个参数允许您指定一个或多个分类的ID,来将这些分类下的文档从当前列表中移除。
实际操作示例:
1. 排除单个分类
假设您的网站上有一个名为“内部公告”的分类,其分类ID是5。您希望在所有文章列表中都排除这个分类的内容,那么可以在archiveList标签中这样使用:
{% archiveList archives with type="list" limit="10" excludeCategoryId="5" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">{{item.Title}}</a>
{# 这里是其他文档信息,例如简介、发布时间等 #}
<div>{{item.Description}}</div>
<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
在这段代码中,excludeCategoryId="5"就告诉系统,在获取文章列表时,请忽略分类ID为5的那些文章。
2. 排除多个分类
如果您需要排除多个分类,比如分类ID为5的“内部公告”和分类ID为8的“过期活动”,只需用逗号将这些分类ID隔开即可:
{% archiveList archives with type="list" limit="10" excludeCategoryId="5,8" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">{{item.Title}}</a>
{# 您的文档列表循环代码 #}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
通过这种方式,您可以灵活地组合需要排除的分类,以适应更复杂的展示需求。
3. 结合其他筛选条件使用
excludeCategoryId参数可以与其他archiveList参数完美结合。例如,您可能只想显示分类ID为10的“产品更新”下的文章,但同时希望排除该分类下某个子分类“旧版本产品”(假设ID为12)的内容:
{# 假设您只想显示分类ID为10的“产品更新”下的文章,但排除其子分类“旧版本产品” (ID 12) #}
{% archiveList archives with type="list" categoryId="10" excludeCategoryId="12" limit="10" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">{{item.Title}}</a>
{# 您的文档列表循环代码 #}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
这样,您就实现了在特定父分类下,进一步细化排除某些子分类的需求。
如何找到分类ID? 分类ID可以在安企CMS后台的“内容管理” -> “文档分类”页面中找到。每个分类旁边都会显示其唯一的ID,方便您进行配置。
实用场景与进阶技巧:
- 保持内容新鲜度: 在网站首页的“最新文章”或“热门推荐”区域,您可以排除一些长期不更新、或者已经过时的分类,确保展示给用户的内容始终是最新、最相关的。
- 优化用户体验: 在网站导航菜单下的内容预览、或者相关推荐模块中,排除内部管理、版权声明等不适合直接展示给普通用户浏览的分类,使内容流更加聚焦。
- SEO策略: 有时为了避免某些低质量或重复内容影响网站整体SEO权重,可以通过
excludeCategoryId将这些分类下的页面排除在核心内容列表之外,从而更好地集中优化重要的内容。 - 多站点管理下的内容聚合: 如果您使用了安企CMS的多站点管理功能,并且希望在一个站点上聚合其他站点的内容,同时排除某些特定分类,
excludeCategoryId也能帮助您更精准地控制内容来源。
通过灵活运用excludeCategoryId这个参数,您能更精细地掌控网站内容的展示逻辑,提升网站的用户体验和运营效率。
常见问题 (FAQ)
1. excludeCategoryId只能排除顶级分类吗?
不,excludeCategoryId参数可以排除任何级别的分类。只要您提供该分类的准确ID,无论它是顶级分类还是多级子分类,系统都会将其下的文档从列表中排除。
2. 如果我排除了一个父分类,它的子分类还会显示吗?
excludeCategoryId 参数是针对您明确指定的分类ID进行排除的。如果您排除了一个父分类,但没有排除其子分类,那么父分类直接关联的文档会被排除,但子分类下的文档仍然会根据其他条件(例如categoryId参数如果被指定了父分类)显示。要排除父分类及其所有子分类,您需要将所有相关分类的ID都列入excludeCategoryId中。
3. 我想在一个分类页面上,排除当前分类下的某个特定子分类的文档,该如何操作?
在分类列表页面,archiveList标签通常会自动获取当前分类的ID来展示内容。在这种情况下,您可以不指定categoryId参数(让系统自动识别当前分类),然后通过excludeCategoryId参数明确指定您想要排除的子分类ID。这样,当前分类页面上的文档列表就不会包含那个被排除的子分类内容了。