AnQiCMS在显示文章列表时,如何根据分类ID和推荐属性进行筛选和排序?

📅 👁️ 68

在内容管理系统中,如何有效地组织和呈现文章列表,是直接影响用户体验和网站信息架构的关键。AnQiCMS 提供了一套灵活且强大的模板标签,让我们可以根据分类ID和推荐属性,精细地筛选和排序文章,从而实现内容的精准投放和优化展示。

理解文章列表标签 archiveList

AnQiCMS 文章列表的显示,核心依赖于 archiveList 这个模板标签。它就像一个万能的内容查询器,能够根据我们传入的各种参数,从海量的文章中筛选出我们想要展示的内容。无论是首页的热门推荐,还是特定分类下的最新资讯,archiveList 都能轻松应对。

在使用时,我们通常会将查询结果赋值给一个变量,例如 archives,然后通过 for 循环遍历这些文章来显示它们。一个基础的调用可能看起来像这样:

{% archiveList archives with type="list" limit="10" %}
    {% for item in archives %}
        <a href="{{item.Link}}">{{item.Title}}</a>
        {# 更多文章详情,如简介、发布时间等 #}
    {% endfor %}
{% endarchiveList %}

这里 type="list" 表示获取固定数量的列表,而 limit="10" 则限制了显示的文章数量。

基于分类ID的精准筛选

网站内容通常会按照不同的主题进行分类,而 AnQiCMS 允许我们根据这些分类来筛选文章。这通过 categoryId 参数来实现。

  1. 指定单个分类: 如果您只想显示某个特定分类下的文章,只需将该分类的ID传递给 categoryId 参数即可。例如,要显示ID为 5 的“公司新闻”分类下的文章:

    {% archiveList articlesByCategory with categoryId="5" limit="5" %}
        {% for article in articlesByCategory %}
            <h3><a href="{{article.Link}}">{{article.Title}}</a></h3>
            <p>{{article.Description}}</p>
        {% endfor %}
    {% endarchiveList %}
    
  2. 同时显示多个分类: 如果需要从多个不相连的分类中获取文章,您可以用英文逗号 , 将多个分类ID连接起来:

    {% archiveList mixedArticles with categoryId="1,3,7" limit="10" %}
        {% for article in mixedArticles %}
            <h4><a href="{{article.Link}}">{{article.Title}}</a></h4>
        {% endfor %}
    {% endarchiveList %}
    
  3. 包含或排除子分类: 默认情况下,如果您在一个分类页面不指定 categoryIdarchiveList 会尝试自动读取当前页面的分类ID并显示其下的所有文章,包括其子分类的文章。

    • 如果您希望只显示当前分类的文章,而不包括任何子分类,可以明确设置 child="false"
      
      {% archiveList currentCategoryArticles with child="false" limit="8" %}
          {# 仅显示当前分类下的文章 #}
      {% endarchiveList %}
      
    • 如果需要排除某个或某些特定分类的文章,可以使用 excludeCategoryId 参数:
      
      {% archiveList allButExcluded with excludeCategoryId="2,4" limit="10" %}
          {# 显示除分类ID 2和4之外的所有文章 #}
      {% endarchiveList %}
      
    • 如果您不希望 archiveList 自动读取当前页面的分类ID,并想展示全站的文章(或者在其他页面不按分类筛选),可以设置 categoryId="0"

利用推荐属性优化内容曝光

在网站运营中,我们经常需要对一些特别的文章进行“推荐”、“置顶”或“幻灯”等处理,以增加它们的曝光度。AnQiCMS 提供了“推荐属性”(flag)来管理这些特殊状态。

在后台编辑文章时,我们可以为文章勾选一个或多个推荐属性,例如“头条”、“推荐”、“幻灯”等。在模板中,通过 flag 参数,我们可以精确地调用带有这些属性的文章。

AnQiCMS 支持的推荐属性及其对应字母如下:

  • h:头条文章
  • c:推荐文章
  • f:幻灯片文章
  • a:特荐文章
  • s:滚动文章
  • p:图片文章
  • j:跳转文章(通常用于外链,但也可以用作内部特殊标记)

需要注意的是,flag 参数一次只能指定一个推荐属性进行筛选。如果您想显示特定推荐文章,例如网站首页的“推荐”文章:

{% archiveList recommendedArticles with flag="c" limit="4" %}
    {% for article in recommendedArticles %}
        <div class="card">
            <h4><a href="{{article.Link}}">{{article.Title}}</a></h4>
            <p>{{article.Description|truncatechars:100}}</p>
        </div>
    {% endfor %}
{% endarchiveList %}

类似地,如果您想排除某些推荐属性的文章,可以使用 excludeFlag 参数。而 showFlag="true" 则可以在文章列表中直接显示该文章所带的推荐属性(例如,在标题旁显示一个“荐”字)。

灵活的排序机制,让内容更有序

内容的呈现顺序直接影响用户获取信息的效率。AnQiCMS 提供了多种排序方式,通过 order 参数来控制:

  • order="id desc":按照文章ID倒序排列,通常用于显示最新发布的文章。desc 表示降序,asc 表示升序。
  • order="views desc":按照文章浏览量倒序排列,用于显示最热门或最受关注的文章。
  • order="sort desc":这是 AnQiCMS 后台默认的自定义排序方式。运营人员可以在后台手动调整文章的优先级,数字越大,排序越靠前。如果您希望文章按照后台设定的顺序显示,这个参数非常有用。

例如,要显示最新发布的5篇文章:

{% archiveList latestArticles with order="id desc" limit="5" %}
    {% for article in latestArticles %}
        <li><a href="{{article.Link}}">{{article.Title}}</a> (发布时间: {{stampToDate(article.CreatedTime, "2006-01-02")}})</li>
    {% endfor %}
{% endarchiveList %}

显示最热门的3篇文章:

{% archiveList hotArticles with order="views desc" limit="3" %}
    {% for article in hotArticles %}
        <p><a href="{{article.Link}}">{{article.Title}}</a> (浏览量: {{article.Views}})</p>
    {% endfor %}
{% endarchiveList %}

综合运用:构建更智能的文章列表

AnQiCMS 的强大之处在于这些参数可以灵活组合,帮助我们构建出满足各种需求的文章列表。例如,我们想要在“产品动态”分类(假设ID为 10)下,显示所有“推荐”(c 属性)的产品新闻,并且按照浏览量从高到低排序,限制显示6条:

{% archiveList productNews with categoryId="10" flag="c" order="views desc" limit="6" %}
    {% for item in productNews %}
        <div class="news-item">
            <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
            <p>发布于:{{stampToDate(item.CreatedTime, "2006-01-02")}} | 浏览:{{item.Views}}</p>
            <p>{{item.Description|truncatechars:120}}</p>
        </div>
    {% else %}
        <p>当前分类下没有推荐的产品动态。</p>
    {% endfor %}
{% endarchiveList %}

这样的组合运用,使得我们能够根据网站的实际运营策略,动态调整内容的呈现方式,无论是为了SEO、用户

相关文章

AnQiCMS如何管理和显示单页面内容,例如“关于我们”或“联系我们”?

在网站运营中,我们经常需要创建一些内容相对固定、信息量较大的独立页面,例如“关于我们”、“联系我们”、“服务条款”或“隐私政策”等。这些页面通常被称为单页面内容,它们是网站不可或缺的一部分,用于向访客提供核心信息、建立信任或引导操作。 AnQiCMS 为管理和展示这类单页面内容提供了直观且灵活的解决方案。它将单页面视为一种特殊的内容类型,让我们可以像管理文章或产品一样,轻松地对其进行创建

2025-11-07

如何在AnQiCMS中正确显示Markdown格式的数学公式和流程图?

对于经常需要发布技术文章、教程或学术内容的用户来说,Markdown编辑器无疑是一个提高效率的利器。它的简洁语法让内容创作变得直观而迅速。AnQiCMS作为一个现代化的内容管理系统,自然也充分考虑了Markdown的使用场景,并提供了强大的支持。然而,当我们需要在Markdown格式的文章中插入复杂的数学公式或绘制直观的流程图时,仅仅依靠Markdown自身的功能是不够的。这时候

2025-11-07

AnQiCMS如何实现分类页面的自定义显示模板?

AnQiCMS在网站内容管理方面提供了出色的灵活性,尤其是在处理分类页面展示时,它不仅仅局限于一种固定布局,而是允许用户根据不同的业务需求和设计理念,为分类页面设置个性化的显示模板。这对于希望通过差异化内容展示来提升用户体验、强化品牌形象或优化特定SEO策略的运营者来说,无疑是一个非常实用的功能。 那么,具体是如何在AnQiCMS中实现分类页面的自定义显示模板的呢

2025-11-07

如何在AnQiCMS文章详情页中调用并显示文档的标题、内容和相关字段?

在AnQiCMS中,内容详情页是您展示核心信息和吸引读者的关键区域。有效地调用和显示文档的标题、内容及其各项相关字段,能极大地提升用户体验和页面信息的丰富度。AnQiCMS强大的模板引擎提供了直观而灵活的方式来实现这些目标。 ## 理解AnQiCMS的模板语法 AnQiCMS的模板系统采用类似Django模板引擎的语法,它主要通过两种形式来操作数据和逻辑: * **双花括号

2025-11-07

如何在AnQiCMS模板中实现多级分类的嵌套列表显示?

网站的导航结构是用户体验的核心,清晰、有组织的多级分类列表不仅能帮助用户快速找到所需内容,还能有效提升网站的SEO表现。在AnQiCMS中,借助其灵活的模板标签系统,实现多级分类的嵌套列表显示变得直观而高效。 ### 理解AnQiCMS的分类结构 在AnQiCMS的后台管理界面,您会发现分类功能允许创建具有层级关系的分类。这意味着您可以为文章

2025-11-07

AnQiCMS如何自动处理图片缩略图以优化网站内容显示速度?

在当今快节奏的网络世界里,网站内容的显示速度,尤其是图片加载速度,直接影响着用户体验、网站跳出率乃至搜索引擎排名。大型图片往往是拖慢网站速度的罪魁祸首,但少了它们,内容又会显得枯燥乏味。那么,如何才能鱼与熊掌兼得,既展示高质量图片,又能确保网站内容飞速加载呢? AnQiCMS 为此提供了强大的图片自动处理机制,尤其在图片缩略图的生成与管理上,下足了功夫,让网站在保持视觉吸引力的同时

2025-11-07

如何配置AnQiCMS的伪静态规则以实现URL的个性化显示?

## 优化URL结构,打造个性化网站链接:AnQiCMS伪静态规则配置指南 在网站运营中,URL(统一资源定位符)不仅是内容的地址,更是搜索引擎优化(SEO)和用户体验(UX)的重要组成部分。一个清晰、有意义且易于记忆的URL结构,能有效提升网站在搜索引擎中的排名,同时也能让访问者更直观地理解页面内容。AnQiCMS作为一个企业级内容管理系统,提供了强大的伪静态规则配置功能

2025-11-07

如何在AnQiCMS模板中使用面包屑导航标签来提升用户体验?

在现代网站设计中,用户体验(UX)和搜索引擎优化(SEO)是成功的两大基石。一个清晰、直观的导航系统不仅能引导用户轻松找到所需信息,也能帮助搜索引擎更好地理解网站结构。其中,面包屑导航(Breadcrumb Navigation)就是提升这两方面表现的有效工具。对于AnQiCMS的用户来说,合理利用其强大的模板标签功能,可以轻松为网站集成高质量的面包屑导航。 ### 什么是面包屑导航,为何重要

2025-11-07