在网站运营中,我们经常需要灵活地控制内容的展示。比如,您可能希望在首页展示最新文章,但又不希望包含某个特定的分类,像“内部通知”或“已归档内容”;或者在一个产品列表中,您想要排除那些“已停产”或“内部测试”的产品分类,以保持面向用户的界面简洁明了。

安企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。这样,当前分类页面上的文档列表就不会包含那个被排除的子分类内容了。