AnQiCMS如何显示某个特定Tag下的所有文章列表?

📅 👁️ 72

在AnQiCMS中,显示某个特定标签(Tag)下的所有文章列表是一个常见且实用的内容运营需求。通过AnQiCMS灵活的模板系统,您可以轻松实现这一功能,为用户提供更精准的内容导航。

首先,让我们了解一下AnQiCMS中的标签机制。标签是内容组织的重要工具,它允许您为文章、产品等内容添加关键词,从而将相关内容进行横向关联,即使这些内容分属不同的分类。这种关联方式有助于用户发现更多感兴趣的内容,同时也利于搜索引擎优化。在内容管理后台,当您发布或编辑文章时,可以为内容添加一个或多个标签,这些标签随后便可以在前台页面上被调用和展示。

要实现在前端页面显示特定标签下的文章列表,AnQiCMS提供了强大的模板标签功能。其中,tagDataList 标签是专门为此目的设计的。它能够根据指定的标签ID或当前页面自动识别的标签,获取该标签下所有相关的文章列表。

在模板中实现标签文章列表

通常,AnQiCMS会为每个标签生成一个专门的列表页,其默认模板文件路径是 /template/你的模板目录/tag/list.html。在这个特殊的模板文件中,tagDataList 标签会自动识别当前页面的标签ID,从而无需手动指定 tagId 参数。当然,如果您希望在其他页面(例如首页、侧边栏等)显示特定标签下的文章,也可以通过明确指定 tagId 来实现。

逐步构建你的标签文章列表页面

  1. 确定模板文件: 如前所述,您可以在 tag/list.html 中进行操作。如果您想在其他页面展示,可以在相应页面(如 index.html 或自定义内容页)中添加以下代码块。

  2. 获取标签自身的信息 (可选但推荐): 在标签列表页中,通常会显示当前标签的名称和描述,以帮助用户了解正在浏览的内容。您可以使用 tagDetail 标签来获取当前标签的详细信息。

    {# 获取当前标签的详细信息 #}
    {% tagDetail currentTag with name="Title" %}
    <h1>{{ currentTag }} 标签下的文章</h1>
    {% tagDetail tagDescription with name="Description" %}
    {% if tagDescription %}
    <p>{{ tagDescription }}</p>
    {% endif %}
    
  3. 使用 tagDataList 获取文章列表: 这是核心步骤。tagDataList 标签用于获取指定标签下的文章数据。您可以通过以下参数来精细控制获取的内容:

    • tagId:标签的ID。在 tag/list.html 中通常无需指定,系统会自动识别当前标签ID。若在其他页面调用,则需要明确指定,例如 tagId="123"
    • moduleId:如果您的网站有多种内容模型(如文章、产品),您可以通过 moduleId 来指定只获取某个模型下的内容,例如 moduleId="1" (通常代表文章模型)。
    • type:设置为 "page" 以启用分页功能,这样当文章数量较多时,可以分多页显示。
    • limit:每页显示的文章数量,例如 limit="10"
    • order:文章的排序方式,例如 order="id desc" (按ID倒序,即最新发布) 或 order="views desc" (按浏览量倒序)。
    {# 使用 tagDataList 获取标签下的文章列表,并启用分页 #}
    {% tagDataList archives with type="page" limit="10" %}
        {# 循环显示文章列表 #}
        {% for item in archives %}
        <article>
            <h2><a href="{{item.Link}}">{{item.Title}}</a></h2>
            {% if item.Thumb %}
            <a href="{{item.Link}}">
                <img src="{{item.Thumb}}" alt="{{item.Title}}">
            </a>
            {% endif %}
            <p>{{item.Description}}</p>
            <footer>
                <span>发布日期: {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>阅读量: {{item.Views}}</span>
            </footer>
        </article>
        {% empty %}
        <p>该标签下暂无文章。</p>
        {% endfor %}
    {% endtagDataList %}
    
  4. 添加分页导航: 如果 tagDataListtype 参数设置为 "page",那么您就可以使用 pagination 标签来生成分页导航,提升用户体验。

    {# 分页导航 #}
    <div class="pagination">
        {% pagination pages with show="5" %}
            <ul>
                {# 首页链接 #}
                <li class="page-item {% if pages.FirstPage.IsCurrent %}active{% endif %}">
                    <a href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
                </li>
                {# 上一页链接 #}
                {% if pages.PrevPage %}
                <li class="page-item">
                    <a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
                </li>
                {% endif %}
                {# 中间页码 #}
                {% for pageItem in pages.Pages %}
                <li class="page-item {% if pageItem.IsCurrent %}active{% endif %}">
                    <a href="{{pageItem.Link}}">{{pageItem.Name}}</a>
                </li>
                {% endfor %}
                {# 下一页链接 #}
                {% if pages.NextPage %}
                <li class="page-item">
                    <a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
                </li>
                {% endif %}
                {# 末页链接 #}
                <li class="page-item {% if pages.LastPage.IsCurrent %}active{% endif %}">
                    <a href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
                </li>
            </ul>
        {% endpagination %}
    </div>
    

完整的模板代码示例

将以上片段组合起来,一个典型的AnQiCMS标签文章列表页面可能看起来像这样:

”`twig {% extends ‘base.html’ %} {# 继承基础模板 #}

{% block title %}

{% tagDetail currentTagTitle with name="Title" %}
<title>{{ currentTagTitle }} - 标签文章列表</title>

{% endblock %}

{% block content %}

<main>
    <section class="tag-header">
        {% tagDetail currentTagName with name="Title" %}
        <h1>标签: {{ currentTagName }}</h1>
        {% tagDetail tagDescription with name="Description" %}
        {% if tagDescription %}
        <p>{{ tagDescription }}</p>
        {% endif %}
    </section>

    <section class="article-list">
        {% tagDataList archives with type="page" limit="10" order="id desc" %}
            {% for item in archives %}
            <article class="article-item">
                {% if item.Thumb %}
                <figure class="article-thumb">
                    <a href="{{item.Link}}">
                        <img src="{{item.Thumb}}" alt="{{item.Title}}">
                    </a>
                </figure>
                {% endif %}
                <div class="article-info">
                    <h2><a href="{{item.Link}}">{{item.Title}}</a></h2>
                    <p class="article-description">{{item.Description}}</p>
                    <div class="article-meta">
                        <span>发布于: {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                        <span>阅读量: {{item.Views}}</span>
                        {# 您还可以显示文章所属分类 #}
                        {% categoryDetail articleCategory with name="Title" id=item.CategoryId %}
                        <span>分类: <a href="{% categoryDetail with name='Link' id=item.CategoryId %}">{{articleCategory}}</a></span>
                    </div>
                </div>
            </article>
            {% empty %}
            <p>该标签下暂无内容,敬请期待!</p>
            {% endfor %}

            {# 分页导航 #}
            <div class="pagination-container">
                {% pagination pages with show="5" %}
                    <ul class="pagination">
                        <li class="page-item {% if pages.FirstPage.IsCurrent %}active{% endif %}">
                            <a href="{{pages.FirstPage.Link}}">首页</a>
                        </li>
                        {% if pages.PrevPage %}
                        <li class="page-item">
                            <a href="{{pages.PrevPage.Link}}">上一页</a>
                        </li>
                        {% endif %}
                        {% for pageItem in pages.Pages %}
                        <li class="page-item {% if pageItem.IsCurrent %}active{% endif %}">
                            <a href="{{pageItem.Link}}">{{pageItem.Name}}</a>
                        </li>
                        {% endfor %}
                        {% if pages.NextPage %}
                        <li class="page-item">
                            <a href="{{pages.NextPage.Link}}">下一页</a>
                        </li>
                        {% endif %}
                        <li

相关文章

如何在留言表单中集成AnQiCMS内置的验证码功能来防止垃圾信息?

作为网站运营者,我们常常会遇到一个令人头疼的问题:垃圾信息。无论是留言板还是评论区,不请自来的广告、恶意链接和无意义内容,不仅会损害网站形象,增加管理负担,甚至可能影响网站的SEO表现。好在安企CMS在设计之初就考虑到了这些安全需求,内置了验证码功能,帮助我们轻松应对这些挑战。 今天,我们就来聊聊如何在您的安企CMS网站的留言或评论表单中集成这一强大的验证码功能,让您的网站保持清爽与安全

2025-11-08

AnQiCMS如何通过模板标签实现面包屑导航的动态显示?

在网站设计中,面包屑导航是一项看似微小,实则至关重要的功能。它以简洁的路径形式,清晰地展示用户在网站中的当前位置,不仅能有效提升用户体验,帮助访客快速了解网站结构并轻松回溯,更对搜索引擎优化(SEO)大有裨益,因为它能够为搜索引擎爬虫提供清晰的网站层级信息,增强网站的内部链接结构。对于AnQiCMS的用户来说,实现动态面包屑导航是件轻松愉快的事情,因为它内置的模板标签提供了强大而灵活的支持

2025-11-08

如何在内容管理中批量替换关键词后,确保前台显示内容同步更新?

在网站内容运营中,有时我们需要对站内大量内容进行统一的关键词调整,无论是为了SEO优化、品牌词统一,还是应对内容策略变化,安企CMS(AnQiCMS)提供了便捷的批量替换功能。然而,完成替换操作后,如何确保前台用户访问时能立即看到这些更新,是许多运营者关心的问题。 本文将围绕安企CMS的批量关键词替换功能,详细阐述其操作流程,并重点讲解如何解决前台内容同步更新的问题,帮助您高效

2025-11-08

如何在AnQiCMS模板中截取文章标题或描述的指定长度并添加省略号?

在AnQiCMS的模板开发中,我们常常需要对文章标题或描述进行长度控制,以便在列表页、卡片布局或其他紧凑的展示区域保持页面整洁和统一的视觉效果。同时,当内容被截断时,习惯性地加上省略号,能够友好地提示读者此处还有更多内容。AnQiCMS强大的模板引擎内置了丰富的过滤器(Filters),让这项任务变得异常简单和高效。 ### 理解内容截取的需求 无论是文章列表、推荐位还是SEO元描述

2025-11-08

如何在文章内容编辑器中插入段落素材库的预设内容?

在安企CMS中,高效地管理和发布内容是提升运营效率的关键。对于那些需要频繁使用特定语句、介绍模块或标准声明的场景,手动重复输入不仅耗时,还可能引入不一致性。安企CMS深知内容创作的价值与挑战,因此在文章内容编辑器中巧妙地融入了“段落素材库”功能,旨在帮助您轻松解决这一痛点。 今天,我们就来深入了解如何在文章内容编辑器中,便捷地插入段落素材库的预设内容,让您的内容生产效率倍增

2025-11-08

AnQiCMS模板如何调用并显示友情链接列表?

在使用AnQiCMS搭建和管理网站时,如何有效地在模板中调用并展示友情链接列表是一个常见且实用的需求。友情链接不仅能帮助提升网站的SEO表现,还能为用户提供更多有价值的外部资源。AnQiCMS强大的模板引擎结合其后台功能,让这一操作变得非常直接。 ### 管理友情链接:从后台开始 在将友情链接显示到网站前端之前,我们首先需要在AnQiCMS的后台进行设置

2025-11-08

如何在文章详情页中动态显示文章的发布时间并进行格式化?

在安企CMS中管理内容,发布时间无疑是每篇文章不可或缺的重要元信息。它不仅能让读者了解内容的时效性,对网站的SEO也有着积极的影响。好在安企CMS为我们提供了非常便捷和灵活的方式,来在文章详情页中动态显示并格式化这些发布时间。 <h3>获取文章的发布时间</h3> 在安企CMS的文章详情页面,系统会自动将当前文章的所有信息作为上下文变量提供给我们。其中,文章的发布时间存储在

2025-11-08

AnQiCMS如何根据文章浏览量(Views)进行排序并显示最热门的文章?

在网站运营中,如何高效地向访客展示最受欢迎的文章,是提升用户参与度和优化内容策略的关键一环。当访客能够轻松找到他们感兴趣的热门内容时,不仅能延长他们在网站上的停留时间,还能有效促进内容的传播。安企CMS(AnQiCMS)提供了一套灵活且强大的模板标签系统,让网站管理者无需复杂的技术操作,即可轻松实现文章按浏览量排序,并展示最热门的内容。 ### 核心功能揭秘

2025-11-08