如何根据文章浏览量在AnQiCMS首页显示热门文章?

在AnQiCMS中,网站首页通常是访客了解网站内容、快速获取信息的重要入口。合理地展示热门文章,不仅能吸引用户目光,提高内容曝光度,还能有效提升网站的用户体验和PV(页面浏览量)。AnQiCMS凭借其灵活的模板标签和内置功能,让这一操作变得非常简单和直观。

理解AnQiCMS如何统计浏览量

AnQiCMS内置了文章浏览量统计功能,系统会自动追踪每篇文章的访问次数,并将这些数据存储起来。这意味着,您无需进行额外的配置或安装插件,每篇文章自发布之日起,其浏览量就会被系统默默记录。在模板中,我们可以直接通过 item.Views 这样的字段来访问到文章的浏览量数据,这为我们筛选和展示热门内容提供了基础。

定位热门文章的展示位置

通常,热门文章列表会放置在网站的首页、侧边栏或者特定分类页面的显眼位置,以便用户一进入网站就能看到最受欢迎的内容。对于在首页展示热门文章,我们需要修改网站首页对应的模板文件。在AnQiCMS中,网站首页对应的模板文件通常是 /template/你的模板目录/index/index.html。如果您使用的是AnQiCMS的默认模板,那么您可以在其目录下找到 index/index.html 文件。

使用archiveList标签获取热门文章数据

AnQiCMS提供了一个强大的 archiveList 模板标签,专门用于获取文章列表。要实现根据浏览量显示热门文章,我们需要巧妙地利用 archiveList 标签的几个关键参数:

  1. type="list": 因为我们只是简单地列出热门文章,通常不需要分页,所以将 type 参数设置为 list。这将返回一个不带分页逻辑的文章列表。
  2. order="views desc": 这是实现热门文章的核心参数。通过将 order 参数设置为 views desc,AnQiCMS会按照文章的浏览量从高到低进行排序。desc 表示降序,确保浏览量最高的文章排在前面。
  3. limit="X": 通过 limit 参数来限制显示的条数。例如,如果您想在首页显示8篇热门文章,可以将 limit 设置为 "8"
  4. moduleId="Y": 如果您的网站有多种内容模型(例如,文章、产品),而您只想显示特定内容模型(如只显示“文章”模型下的热门内容),可以通过 moduleId 参数指定。通常,“文章”模型的ID是1,具体ID可以在AnQiCMS后台的“内容管理”->“内容模型”中查看。

结合这些参数,获取热门文章数据的模板标签大致如下:

{% archiveList hotArticles with type="list" order="views desc" limit="8" moduleId="1" %}
    {# 文章数据将在这里循环展示 #}
{% endarchiveList %}

这里我们将获取到的热门文章列表命名为 hotArticles

在模板中展示热门文章

获取到数据后,我们需要在模板中使用循环结构来遍历并展示每一篇热门文章。AnQiCMS的模板引擎支持类似Django的 for 循环。在循环中,每一篇热门文章都会作为一个 item 对象,我们可以通过 item.Titleitem.Linkitem.Views 等字段来访问文章的标题、链接和浏览量。为了让热门文章更具吸引力,我们还可以展示文章的缩略图 (item.Thumb) 和简要描述 (item.Description)。

以下是一个在首页模板中展示热门文章的代码片段示例:

”`twig

<h2 class="section-title">热门文章推荐</h2>
<ul class="article-list">
    {% archiveList hotArticles with type="list" order="views desc" limit="8" moduleId="1" %}
        {% for item in hotArticles %}
            <li class="article-item">
                <a href="{{ item.Link }}" title="{{ item.Title }}">
                    {% if item.Thumb %}
                        <div class="article-thumb-wrapper">
                            <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
                        </div>
                    {% endif %}
                    <h3 class="article-title">{{ item.Title }}</h3>
                    <p class="article-views">浏览量:{{ item.Views }}</p>
                    {# 您也可以根据需要,加上文章的发布时间或简介 #}
                    {# <span class="article-date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span> #}
                    {# <p class="article-description">{{ item.Description|truncatechars:8