AnQiCMS 如何在模板中定义变量并将其值显示出来?

📅 👁️ 63

在 AnQiCMS 的模板中,我们经常需要处理各种数据,无论是网站的名称、文章的标题,还是产品详情,这些动态内容都需要通过变量来承载并展示出来。理解如何在模板中定义和显示变量,是进行 AnQiCMS 模板开发的核心。

AnQiCMS 采用了类似 Django 模板引擎的语法,这使得变量的使用直观且易于上手。在模板文件(通常是 .html 格式,并存放在 /template 目录下)中,我们主要通过两种符号来操作内容:双花括号 {{ }} 用于输出变量的值,而单花括号和百分号 {% %} 则用于定义逻辑结构,比如条件判断或循环,有时也用于调用特定的数据标签并定义变量。

基础变量的显示

最直接的变量显示方式,就是使用双花括号包裹变量名。例如,当你想要在页面上显示当前文章的标题时,如果后端已经将文章数据传递到模板中,并命名为 archive 对象,你就可以这样轻松地显示出来:

<h1>{{ archive.Title }}</h1>

这里的 archive 是一个对象,Title 则是这个对象的属性。通过 .(点号)运算符,我们可以层层深入地访问对象的属性。AnQiCMS 的变量命名通常遵循驼峰命名法则,即每个单词的首字母大写,例如 archive.Idarchive.Link

在模板中定义新的变量

有时候,我们可能需要在模板内部创建一些临时变量,以便于后续的计算、组合或在局部代码块中使用。AnQiCMS 提供了 setwith 两种方式来定义变量。

set 标签用于在当前模板文件中定义一个新变量并赋值。这个变量的作用域会持续到当前模板文件的末尾。

{% set myTitle = "欢迎来到安企CMS的世界" %}
<p>{{ myTitle }}</p>

with 标签则更常用于定义一个临时的、作用域受限的变量,它通常与 include 标签结合使用,为引入的子模板传递特定数据,或者在某个代码块内进行局部变量声明,并通过 {% endwith %} 结束其作用域。

{% with headerTitle = "安企CMS官方网站" %}
    <h1>{{ headerTitle }}</h1>
{% endwith %}
{# 在这里,headerTitle 变量将不再可用 #}

利用内置标签获取并显示数据

AnQiCMS 内置了许多功能强大的标签,它们可以直接从后台获取配置数据、内容数据等,并提供两种常用的显示变量值的方式:直接输出或先定义为变量再输出。

以获取网站名称为例,我们可以使用 system 标签。如果只是想直接在某个位置显示网站名称,可以这样写:

<p>我们的网站名称是:{% system with name="SiteName" %}</p>

如果希望将网站名称赋值给一个新变量,以便在模板中的多个位置灵活使用,或者进行进一步处理,可以在标签后指定变量名:

{% system siteBrandName with name="SiteName" %}
<p>网站品牌:{{ siteBrandName }}</p>
<meta property="og:site_name" content="{{ siteBrandName }}">

类似的标签还有 contact(用于获取联系方式,如 {% contact cellPhone with name="Cellphone" %}{{ cellPhone }})、tdk(用于获取页面 SEO 相关的 TDK 信息)、archiveDetail(获取文章详情)、categoryDetail(获取分类详情)和 pageDetail(获取单页详情)等。它们都遵循这种通过 with name="字段名称" 来指定获取哪个字段的模式。

处理列表数据:for 循环

在网站中,我们经常需要展示文章列表、产品列表等集合数据。AnQiCMS 的 for 循环标签能够遍历这些数据集合,并在每次迭代中将当前项赋值给一个临时变量,供我们显示其属性。

例如,要显示最新的十篇文章列表,可以配合 archiveList 标签:

{% archiveList articles with type="list" limit="10" %}
    <ul>
        {% for item in articles %}
            <li>
                <a href="{{ item.Link }}">
                    <h3>{{ item.Title }}</h3>
                    <p>{{ item.Description|truncatechars:100 }}</p>
                    <small>发布日期: {{ stampToDate(item.CreatedTime, "2006-01-02") }}</small>
                </a>
            </li>
        {% empty %}
            <li>暂无文章</li>
        {% endfor %}
    </ul>
{% endarchiveList %}

在这个例子中,for item in articles 会在每次循环时将当前文章数据赋值给 item 变量。我们就可以通过 item.Linkitem.Title 等方式来访问并显示文章的各项属性。forloop.Counter 等内置变量还能帮助我们获取循环的当前索引等信息。

条件性显示:if 语句

有时,我们可能需要根据特定条件来决定是否显示某个变量或代码块。if 语句允许我们进行逻辑判断。

例如,如果一篇文章没有缩略图,我们就不显示图片区域:

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

使用过滤器美化和处理变量

AnQiCMS 提供了丰富的过滤器(Filters)来对变量进行加工处理,例如格式化、截取、转义等。使用过滤器时,只需在变量名后加上 |(管道符)和过滤器名称即可。

  • |safe 当变量内容包含 HTML 代码,而你不希望它被转义显示时,使用 |safe 过滤器可以确保 HTML 代码被浏览器正确解析。这对于显示富文本编辑器内容尤为重要。
    
    <div>文章内容:{{ archive.Content|safe }}</div>
    
  • |stampToDate AnQiCMS 的时间戳通常以 10 位数字形式存储,stampToDate 函数可以将其格式化成我们需要的日期时间格式。 “`twig 更新时间:{{ stampToDate(archive.UpdatedTime, “2006年0

相关文章

如何在 AnQiCMS 模板中遍历数组或切片,并循环显示其中的元素?

在安企CMS的模板世界里,动态地展示内容是构建一个活跃且功能丰富的网站的关键。无论是文章列表、产品展示、导航菜单,还是图片画廊,我们都需要一种机制来遍历数据集合,并将每个元素呈现在页面上。幸运的是,安企CMS的模板引擎提供了直观易用的循环结构,让我们能够轻松实现这一目标。 ### 轻松掌握 `for` 循环:动态内容展示的基石 安企CMS的模板引擎采用了类似Django的语法,它通过 `{%

2025-11-09

AnQiCMS 如何实现定时发布文章,确保内容在指定时间才在前台可见?

作为一名内容运营者,我们深知在信息爆炸的时代,内容的发布时机往往决定了其传播效果。无论是为了配合市场活动、保持稳定的更新频率,还是在特定时间点发布重要公告,一个能够精准控制发布时间的功能都是不可或缺的。AnQiCMS(安企内容管理系统)深谙此道,为我们提供了一个简单而强大的定时发布机制,确保每一篇精心准备的文章都能在最合适的时机与读者见面。 ### 巧妙利用 AnQiCMS 定时发布

2025-11-09

如何在 AnQiCMS 的后台自定义参数并在前端模板中调用显示?

在网站运营过程中,我们经常会遇到这样的需求:标准的内容字段(如标题、内容、发布时间)已经无法满足个性化的展示需求。例如,一个产品详情页可能需要展示“生产日期”、“保质期”;一篇技术文章可能需要标明“作者职称”、“参考资料链接”;而网站底部可能需要一个不属于常规联系方式的自定义友情链接区域。 AnQiCMS 作为一款灵活的企业级内容管理系统,充分考虑到了这些自定义需求。它提供了强大的功能

2025-11-09

AnQiCMS 的 `breadcrumb` 标签如何构建并显示当前页面的面包屑导航?

在网站运营中,面包屑导航(Breadcrumb Navigation)是提升用户体验和网站结构清晰度的重要元素。它不仅能帮助访问者快速了解当前所在页面在网站层级结构中的位置,还能有效辅助搜索引擎理解网站内容间的关系,对SEO优化有着积极作用。对于AnQiCMS的用户来说,构建和显示面包屑导航是一项非常便捷的操作,这得益于AnQiCMS内置的强大模板标签。 ### 理解 AnQiCMS 的

2025-11-09

如何在 AnQiCMS 中为单页面设置独立的模板,并正确显示其内容?

在 AnQiCMS 中,单页面(例如“关于我们”、“联系方式”或特定的产品落地页)是我们网站内容的重要组成部分。它们通常承载着独特的信息,需要与网站其他内容(如文章列表或产品详情)有不同的布局和视觉风格。幸运的是,AnQiCMS 提供了极高的灵活性,让你可以轻松地为每一个单页面设置专属的独立模板,从而打造独一无二的用户体验。 ### AnQiCMS 模板基础

2025-11-09

AnQiCMS 网站如何通过静态缓存和 Go 语言特性实现高并发下的快速内容显示?

在当今快速变化的数字世界中,网站的访问速度和在高并发下的稳定性已成为用户体验和搜索引擎排名的关键因素。对于内容丰富的企业网站或自媒体平台而言,如何确保内容快速呈现,同时又高效利用服务器资源,是运营者面临的一大挑战。安企CMS(AnQiCMS)凭借其基于Go语言的强大内核和精妙的静态缓存机制,为解决这一难题提供了卓越的解决方案。 ### Go 语言赋能

2025-11-09

如何在 AnQiCMS 模板中对字符串进行大小写转换并显示?

在网站内容运营中,我们经常会遇到需要对文本进行格式化处理的需求。无论是为了统一品牌形象、提升页面可读性,还是优化搜索引擎友好度,对字符串进行大小写转换都是一项基础而实用的技能。AnQiCMS 作为一款基于 Go 语言开发的企业级内容管理系统,其灵活的模板引擎语法(类似 Django 模板),为我们提供了丰富的工具来精确控制内容的展示。 今天,我们就来深入探讨如何在 AnQiCMS

2025-11-09

AnQiCMS 的内容采集功能是否支持将采集到的文章直接显示在网站上?

## AnQiCMS 的内容采集功能:让文章直接上线,还是更进一步? 在当今信息爆炸的时代,持续不断地为网站输送高质量内容是许多运营者面临的一大挑战。内容生产的效率直接关系到网站的活跃度、用户粘性乃至搜索引擎排名。安企CMS(AnQiCMS)作为一款基于Go语言开发的企业级内容管理系统,其强大的内容采集功能引起了不少用户的关注,尤其是大家都在好奇,采集来的文章是否可以直接显示在网站上

2025-11-09