如何使用AnQiCMS内置的标签来控制内容显示逻辑?

📅 👁️ 61

在AnQiCMS中,内置的标签系统是您掌控网站内容展示逻辑的核心工具。它提供了一套强大且灵活的语法,让您无需编写复杂的后端代码,就能在模板文件中精确地控制内容的获取、筛选、排序、格式化乃至最终的布局。这套系统类似Django模板引擎的语法,易于上手,能够帮助您将技术细节转化为直观的展示效果。

AnQiCMS标签的基础构成

AnQiCMS的标签系统主要由两种基本元素组成:

  1. 变量输出标签 ({{ 变量名 }}):用于直接在页面上显示数据,例如获取文章标题 {{ item.Title }}
  2. 逻辑控制标签 ({% 标签名 参数 %}):用于处理各种逻辑,比如条件判断、循环遍历、引入文件等,这些标签通常需要一个 {% end标签名 %} 来闭合。

理解这两种标签是深入使用AnQiCMS模板的关键。所有的标签和变量都严格区分大小写,使用时务必保持一致。

获取并展示内容:数据驱动的显示逻辑

AnQiCMS提供了多种标签来获取不同类型的内容,您可以根据需求选择合适的标签:

  • 列表型数据获取

    • archiveList:用于获取文章、产品等模型下的文档列表。您可以设置 moduleId 指定模型(如 moduleId="1" 获取文章)、categoryId 筛选分类、limit 控制数量、type="page|list" 选择分页或普通列表、order 定义排序规则等。
    • categoryList:获取分类列表。常用于展示导航菜单或侧边栏分类。您可以通过 parentId 指定父级分类,甚至获取当前分类的子分类或兄弟分类。
    • pageList:获取单页面列表,如“关于我们”、“联系我们”等。
    • tagList:获取标签列表,常用于构建热门标签云或相关标签。
    • navList:获取后台配置的网站导航菜单。支持多级导航。

    当您获取到列表数据后,通常会结合 {% for %} 循环标签来遍历并逐一显示:

    {% archiveList archives with type="list" categoryId="1" limit="5" %}
        {% for item in archives %}
            <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
        {% empty %}
            <li>当前分类下暂无内容。</li>
        {% endfor %}
    {% endarchiveList %}
    

    上述代码会显示分类ID为1的前5篇文章标题,如果列表为空,则显示“当前分类下暂无内容。”

  • 详情型数据获取

    • archiveDetail:获取单篇文档的详细信息。在文章详情页,通常无需指定ID,它会自动获取当前页面的文档信息。您可以指定 name="Title" 获取标题,name="Content" 获取内容等。
    • categoryDetail:获取单个分类的详细信息,如分类标题、描述、链接等。
    • pageDetail:获取单个单页面的详细信息。
    • tagDetail:获取单个标签的详细信息。
    • system:获取全局系统设置,如网站名称 SiteName、网站Logo SiteLogo、备案号 SiteIcp 等。
    • contact:获取后台配置的联系方式,如联系电话 Cellphone、联系邮箱 Email 等。
    • tdk:获取当前页面的SEO信息,如标题 Title、关键词 Keywords、描述 Description

    这些标签通常用于页面头部SEO设置、详情页内容展示或页脚信息显示:

    <title>{% tdk with name="Title" siteName=true %}</title>
    <meta name="keywords" content="{% tdk with name="Keywords" %}">
    <meta name="description" content="{% tdk with name="Description" %}">
    
    <h1>{% archiveDetail with name="Title" %}</h1>
    <div>{{ archiveDetail with name="Content" | safe }}</div>
    

逻辑控制与条件显示

在内容展示中,我们常常需要根据特定条件来决定是否显示某个元素或显示哪种内容。{% if %} 标签是实现这种逻辑的核心:

  • 条件判断

    {% if item.Thumb %}
        <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
    {% else %}
        <img src="{% system with name="DefaultThumb" %}" alt="默认图片">
    {% endif %}
    

    这段代码会判断文章是否有缩略图,如果有则显示,否则显示系统默认缩略图。

  • 多重条件判断:您可以使用 {% elif %}{% else %} 来处理更复杂的逻辑,例如判断用户权限、内容类型等。

数据格式化与转换

AnQiCMS提供了一系列过滤器 (|) 和专用标签来处理数据的格式化,确保内容以**方式呈现:

  • 日期和时间stampToDate 标签可以将时间戳格式化为易读的日期和时间字符串。需要注意的是,其格式参数遵循Go语言的特定时间格式化标准(如 2006-01-02 15:04:05)。

    <span>发布日期:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</span>
    
  • 文本内容处理

    • |safe:这是非常重要的过滤器,用于显示富文本编辑器中的内容或包含HTML标签的字符串。它可以防止HTML标签被转义,确保页面正确渲染。
    • |truncatechars:N:截取字符串到指定字符数,并在末尾添加“…”
    • |default:"默认值":当变量为空或不存在时,显示一个预设的默认值。
    • |render:如果您的内容是Markdown格式,此过滤器可以将其渲染为HTML。
    • |replace:"旧词,新词":替换字符串中的特定子串。
    • |split:"分隔符"|join:"分隔符":用于字符串和数组之间的转换。
    <p>{{ item.Description | truncatechars:100 }}</p> {# 截取前100个字符 #}
    <p>{{ item.Content | render | safe }}</p> {# 渲染Markdown内容并确保HTML正确显示 #}
    

模板代码的复用与组织

为了提高效率和维护性,AnQiCMS支持模板的继承、包含和宏定义:

  • {% include "路径/文件名.html" %}:将另一个模板文件的内容插入到当前位置。这非常适合复用页眉、页脚、侧边栏等公共模块。您还可以通过 with 参数向被包含的模板传递变量。
  • {% extends "基础模板.html" %}{% block 名称 %}:实现模板继承。您可以定义一个基础布局(如 base.html),其中包含页面骨架,然后子模板通过重写 block 来填充特定内容,而不需要

相关文章

AnQiCMS支持哪些模板文件后缀和存储位置?

AnQiCMS作为一个灵活高效的内容管理系统,在内容展示上提供了强大的模板定制能力。要充分利用AnQiCMS的这一优势,了解其模板文件的后缀和存储位置至关重要。这不仅能帮助您更高效地进行网站设计,也能在遇到问题时更快地定位和解决。 首先,AnQiCMS的模板文件统一使用`.html`作为后缀。这意味着您创建或编辑的所有模板文件都应该保存为HTML格式。这些`

2025-11-08

AnQiCMS如何实现网站前台内容的个性化展示?

在当今内容泛滥的互联网时代,如何让网站脱颖而出,为访问者提供独特且有价值的体验成为了关键。内容的个性化展示,正是提升用户粘性、转化率和品牌形象的重要手段。AnQiCMS作为一个高效、可定制的内容管理系统,提供了诸多功能来帮助我们轻松实现这一目标。 ### 内容模型的灵活构建:个性化展示的基石 个性化展示的第一步,是让我们的内容本身就具有“个性”。AnQiCMS的“灵活的内容模型”功能

2025-11-08

如何在AnQiCMS模板中显示文章的标题和内容?

在AnQiCMS中管理网站内容,最终目的都是为了能够优雅、高效地将这些内容呈现给访问者。对于文章这一最常见的内容类型,如何在前端模板中准确显示其标题和正文,是每个网站运营者都需要掌握的基础技能。AnQiCMS强大的模板功能,为我们提供了灵活直观的实现方式。 ### 核心:认识 `archiveDetail` 标签 AnQiCMS的模板系统设计得非常人性化

2025-11-08

如何在AnQiCMS模板中获取字符串的

在AnQiCMS模板开发中,文字和字符串是构建网站内容的基础。无论是展示文章标题、网站名称,还是处理用户输入,灵活高效地获取和操作字符串是模板开发者必须掌握的技能。AnQiCMS强大的模板引擎基于Go语言,提供了丰富的标签和过滤器,让字符串的获取与处理变得直观且实用。 ### 核心机制:理解AnQiCMS模板的字符串获取方式 在AnQiCMS模板中获取字符串,最直接的方式就是通过变量的引用

2025-11-08

AnQiCMS如何实现网站PC端和移动端内容的适配显示?

AnQiCMS:为您的网站提供无缝的PC与移动端适配显示方案 在当今数字时代,用户通过各种设备访问网站已是常态,从宽大的电脑屏幕到小巧的智能手机,网站的显示效果直接影响着用户体验和信息传递效率。一个无法在移动端友好展示的网站,无疑会损失大量潜在用户和商业机会。AnQiCMS深知这一需求,为此提供了灵活多样的方案,确保您的网站内容在PC端和移动端都能得到完美呈现

2025-11-08

如何在AnQiCMS中按分类显示文章列表?

在网站内容管理中,高效地组织和展示信息至关重要。对于用户而言,能够清晰地按照不同分类浏览文章列表,不仅极大地提升了访问体验,也有助于搜索引擎更好地理解网站结构,从而优化SEO效果。安企CMS(AnQiCMS)为我们提供了灵活而强大的工具,让这一需求变得触手可及。 要实现在AnQiCMS中按分类展示文章列表,首先需要了解其背后的核心机制,这主要涉及到“内容模型”和“文档分类”这两个概念

2025-11-08

AnQiCMS如何设置每页显示的文章或产品数量?

在网站运营中,尤其是在管理文章列表、产品展示页这类需要大量内容呈现的页面时,如何高效地控制每页显示的项目数量,直接影响着用户体验和页面加载速度。安企CMS(AnQiCMS)提供了一套灵活且强大的机制来应对这一需求,它通过模板标签层面的精细化控制,让您可以根据不同的页面和内容类型,自定义每页内容的展现方式。 安企CMS之所以能提供这种灵活性,是因为它将列表内容的展示逻辑与模板设计紧密结合

2025-11-08

如何在文章列表中排除特定分类的内容?

在网站内容运营中,我们经常会遇到这样的需求:希望在文章列表页面展示大部分内容,但某些特定分类的文章却不在此列。例如,您可能有一个“公司公告”分类,只想在单独的页面展示,或者有一些仅供内部参考的文章,不希望它们出现在面向公众的常规文章列表中。安企CMS(AnQiCMS)提供了非常灵活且直观的方式来处理这种情况,让您能够精准控制内容在前端的展示。 安企CMS通过其强大的模板标签系统

2025-11-08