如何实现在文章列表中,仅显示特定分类的文章结果?

📅 👁️ 75

在安企CMS中管理网站内容时,我们经常需要灵活地控制文章列表的展示,例如,在某个页面上只显示特定分类下的文章。这不仅有助于网站内容的精准组织,也能极大地提升访客的浏览体验,帮助他们更快找到感兴趣的信息。安企CMS提供了强大的模板标签功能,让这一需求变得简单而直观。

实现这一目标的核心在于安企CMS的 archiveList 模板标签。这个标签是用来从数据库中获取文章列表的“万能钥匙”,通过为其配置不同的参数,我们可以精确地筛选出所需的内容。

了解 archiveList 的关键参数

archiveList 标签中,有两个至关重要的参数用于筛选特定分类的文章:

  • moduleId:这个参数用于指定您要获取文章的内容模型。在安企CMS中,文章、产品等都属于不同的内容模型。通常,“文章模型”的ID是1,“产品模型”的ID是2,您可以在后台的“内容管理”->“内容模型”中查看或自定义。确保指定正确的 moduleId 是获取正确文章列表的第一步。
  • categoryId:这是直接指定文章所属分类的关键参数。通过提供一个或多个分类的ID,您可以让 archiveList 标签只返回这些分类下的文章。

如何获取分类ID?

在运用 categoryId 参数之前,您需要知道目标分类的ID。获取分类ID有几种常用方法:

  1. 从后台管理界面获取: 最直接的方式是登录安企CMS后台,进入“内容管理”->“文档分类”。在这里,每个分类都会清晰地列出其对应的ID。
  2. 通过模板标签动态获取: 如果您正在一个分类详情页或其子页面上,并且希望显示当前分类的文章,您可以使用 categoryDetail 标签来获取当前分类的ID,然后将其传递给 archiveList。例如,{% categoryDetail with name="Id" %} 可以直接输出当前分类的ID。

实战场景:精准控制文章列表

掌握了 moduleIdcategoryId 参数以及如何获取分类ID后,我们就可以应对各种文章列表的展示需求了。

首先,假设您希望在网站的某个区块中,只展示“公司新闻”这个特定分类下的最新文章。您需要先在后台找到“公司新闻”分类的ID(例如,假设其ID为10),并且文章模型ID通常为1。那么,您可以在模板中这样使用 archiveList 标签:

{% archiveList newsArticles with moduleId="1" categoryId="10" limit="5" %}
    {% for article in newsArticles %}
        <div class="news-item">
            <h4><a href="{{ article.Link }}">{{ article.Title }}</a></h4>
            <p>{{ article.Description }}</p>
            <span>发布日期:{{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
        </div>
    {% else %}
        <p>暂无公司新闻。</p>
    {% endfor %}
{% endarchiveList %}

这段代码会获取文章模型(moduleId="1")下,ID为10的分类(categoryId="10")中的最新5篇文章。

其次,如果您需要在一个列表中同时展示来自多个特定分类的文章,比如“公司新闻”(ID: 10)和“行业动态”(ID: 12)的文章,您只需在 categoryId 参数中用逗号将这些分类ID分隔开即可:

{% archiveList mixedArticles with moduleId="1" categoryId="10,12" limit="10" order="CreatedTime desc" %}
    {% for article in mixedArticles %}
        <div class="article-card">
            <h5><a href="{{ article.Link }}">{{ article.Title }}</a></h5>
            <small>分类: {% categoryDetail with name="Title" id=article.CategoryId %}</small>
            <span> | 日期: {{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
        </div>
    {% else %}
        <p>暂无相关文章。</p>
    {% endfor %}
{% endarchiveList %}

这里,order="CreatedTime desc" 参数用于按发布时间倒序排列文章,确保显示最新内容。

再者,很多时候我们会构建一种按分类分组展示内容的页面布局,例如,页面上显示几个分类的标题,每个标题下再列出该分类的几篇文章。这可以通过结合 categoryListarchiveList 标签来实现:

{% categoryList mainCategories with moduleId="1" parentId="0" %} {# 获取文章模型下的所有顶级分类 #}
    {% for category in mainCategories %}
        <section class="category-block">
            <h2><a href="{{ category.Link }}">{{ category.Title }}</a></h2>
            <ul class="article-list">
                {% archiveList articlesInCategory with moduleId="1" categoryId=category.Id limit="3" %} {# 显示当前分类下的3篇文章 #}
                    {% for article in articlesInCategory %}
                        <li><a href="{{ article.Link }}">{{ article.Title }}</a></li>
                    {% endfor %}
                {% else %}
                    <li>该分类暂无文章。</li>
                {% endarchiveList %}
            </ul>
        </section>
    {% endfor %}
{% endcategoryList %}

在这个例子中,categoryList 遍历了所有的顶级文章分类,然后对于每一个分类,嵌套的 archiveList 使用 category.Id 参数,动态地获取并显示该分类下的文章。

最后,如果您希望显示某个内容模型下的所有文章,但需要排除一个或几个特定的分类,比如不显示“内部公告”(ID: 15)这类分类的文章,安企CMS也提供了 excludeCategoryId 参数来满足这种需求:

{% archiveList allButInternal with moduleId="1" excludeCategoryId="15" limit="10" %}
    {% for article in allButInternal %}
        <div class="general-article-item">
            <h3><a href="{{ article.Link }}">{{ article.Title }}</a></h3>
            <span>分类:{% categoryDetail with name="Title" id=article.CategoryId %}</span>
        </div>
    {% else %}
        <p>暂无文章可显示。</p>
    {% endfor %}
{% endarchiveList %}

这行代码会获取除ID为15的分类之外的所有文章模型内容。

小贴士与注意事项

在实际操作中,请确保您的模板文件符合安企CMS的模板命名和目录结构约定,例如,分类列表通常会使用 {模型table}/list.html 这样的命名格式。同时,archiveList 标签还有 limit(限制文章数量)、order(排序方式,如按发布时间、浏览量等)以及 type(列表类型,如 list 用于简单列表,page 用于分页列表)等更多参数,可以帮助您进一步细化文章列表的展示逻辑。合理利用这些参数,能让您的网站内容展示更具条理性和专业性。

通过这些灵活的标签组合和参数配置,安企CMS让您能够轻松驾驭网站的文章内容,无论是创建专题页面、展示推荐内容,还是构建复杂的分类导航,都能得心应手。


常见问题 (FAQ)

  1. 如何确定文章模型的 moduleId 是多少? 通常情况下,安企CMS内置的“文章模型”的ID是1,“产品模型”的ID是2。您可以通过登录后台管理界面,进入“内容管理”->“内容模型”,在那里可以清晰地看到每个内容模型及其对应的ID。如果您自定义了新的内容模型,其ID也会在此处显示。

  2. 如果我希望在文章列表中显示当前分类及其所有子分类的文章,需要额外设置吗? 不需要额外设置。archiveList 标签在默认情况下就支持获取指定分类及其所有子分类的文章。也就是说,当您为 categoryId 参数传入一个分类ID时,它会自动包含该分类下的所有子分类中的文章。只有当您明确不希望包含子分类文章时,才需要使用 child="false" 参数。

  3. 为什么我设置了 categoryId 后,文章列表仍然为空或显示不正确? 这可能是由几个原因造成的。首先,请检查 moduleIdcategoryId 是否正确,确保它们与后台实际的内容模型和分类ID匹配。其次,确认该分类下确实存在已发布(非草稿或回收站)的文章。另外,检查 limit 参数是否设置得

相关文章

AnQiCMS是否支持根据内容模型不同,展示不同的详情页样式?

在网站运营中,我们经常会遇到这样的需求:不同类型的内容,即使是同一个网站,也需要有截然不同的展示风格。例如,一个电商网站的产品详情页需要突出商品图片、价格、库存等信息,而其博客文章详情页则可能更侧重于阅读体验、作者信息和发布日期。这种根据内容类型(或称内容模型)来定制详情页样式的能力,对于提升用户体验和内容专业度至关重要。 那么,在使用AnQiCMS时

2025-11-09

如何使用AnQiCMS自定义文章详情页面的显示布局?

AnQiCMS 提供了一套非常灵活且强大的内容管理机制,让我们可以轻松地对文章详情页面的显示布局进行个性化定制。无论是为了提升用户体验、优化SEO,还是为了更好地展现品牌特色,AnQiCMS都能通过其直观的模板系统和丰富的标签功能,帮助我们实现这些目标。 那么,具体该如何操作呢?我们可以从以下几个方面逐步深入。 ### 1. 理解AnQiCMS的模板机制 首先

2025-11-09

如何展示或自定义网站的错误页面(如404、500)和闭站提示?

在网站运营中,访客可能会因为各种原因遇到找不到的页面或者服务器暂时性的问题,甚至可能在网站进行维护升级时无法访问。面对这些情况,一个设计得当的错误页面(如404、500)和友好的闭站提示,不仅能大幅提升用户体验,还能在一定程度上维护网站的专业形象和搜索引擎优化(SEO)。安企CMS作为一个高效的内容管理系统,提供了灵活的方式来展示和自定义这些重要的页面。 ###

2025-11-09

如何显示网站中配置的动态Banner图片列表?

网站的Banner区域,如同一个动态的宣传窗口,它的视觉吸引力和内容传达效率,直接影响着访客对网站的第一印象。一个精心设计的Banner,能够迅速抓住用户目光,有效地展示品牌形象、最新活动或核心产品。在AnQiCMS(安企CMS)中,利用其强大的内容管理功能,您可以轻松实现动态Banner图片列表的配置与展示,让您的网站始终保持新鲜感和吸引力。 ###

2025-11-09

AnQiCMS如何配置才能让图片在页面上实现懒加载效果?

在当今内容丰富的网络世界里,网站加载速度对用户体验和搜索引擎优化(SEO)的重要性不言而喻。尤其当页面包含大量图片时,如何有效地管理这些图片加载,避免一次性加载所有资源造成的卡顿,成为了许多网站运营者关注的焦点。懒加载(Lazy Load)技术便是解决这一问题的利器,它能够让图片只在用户即将看到时才加载,从而显著提升页面性能。 AnQiCMS作为一个高性能的内容管理系统

2025-11-09

如何通过模板标签,在文章内容中动态显示关联的Tag列表?

在网站运营中,如何让用户在浏览一篇文章时,一眼就能看到与之相关的关键词或主题列表,从而引导他们发现更多感兴趣的内容,是提升用户体验和网站粘性的重要一环。安企CMS(AnQiCMS)提供了强大的模板标签功能,让您能够轻松地在文章内容中动态显示关联的Tag列表,既美观又实用。 **理解安企CMS的标签功能** 在安企CMS中,标签(Tag)不仅仅是文章的简单分类

2025-11-09

AnQiCMS的多站点功能如何影响前端内容的展示和切换?

在使用网站内容管理系统时,多站点功能一直是一个备受关注的话题。它不仅关乎运营效率,更直接影响着网站内容的组织、展示以及用户在不同站点间的流畅切换体验。对于AnQiCMS的用户而言,其强大的多站点功能,正是解决这一系列挑战的利器。让我们深入探讨AnQiCMS的多站点功能究竟如何作用于前端内容的展示和切换。 AnQiCMS的设计初衷之一,便是为了满足用户管理多个品牌、子站点或多语言内容的需求

2025-11-09

如何利用AnQiCMS的伪静态规则,优化文章URL显示结构以提升SEO?

在网站运营中,网址(URL)不仅是用户访问内容的入口,更是搜索引擎理解和抓取网站内容的重要依据。一个结构清晰、语义友好的URL,能显著提升用户体验和网站在搜索引擎中的表现。而实现这一目标的关键之一,就是巧妙地运用伪静态技术。 AnQiCMS作为一款高效、可定制的内容管理系统,充分考虑到了SEO优化的需求,提供了强大且灵活的伪静态规则配置功能。今天

2025-11-09