如何在AnQiCMS模板中定义和使用变量来显示动态内容?

📅 👁️ 72

在构建网站时,我们都希望内容能根据不同的页面、不同的数据而灵活变动,而不是一成不变的静态文本。AnQiCMS 凭借其基于 Go 语言的高性能架构和灵活的类 Django 模板引擎,为我们提供了强大的动态内容展示能力。而这一切的核心,都离不开“变量”的定义与使用。

掌握在 AnQiCMS 模板中如何定义和使用变量,就像掌握了开启网站动态活力的钥匙。这不仅仅是技术操作,更是实现内容营销、SEO 优化和用户体验提升的关键一步。

核心:变量的定义与使用基础

AnQiCMS 的模板语法简洁直观,它沿用了类似 Django 模板引擎的风格。最直接的方式,就是使用双花括号 {{ 变量名 }} 来显示动态内容。当系统渲染页面时,它会查找这些花括号中的变量名,并将其替换为实际的数据。

变量的命名通常遵循驼峰命名法,例如 archive.Idarchive.Title。这里的 archive 通常代表当前页面所加载的文章、产品等内容实体,而 IdTitle 则是该实体所具有的属性。

从系统内置标签获取数据

AnQiCMS 为我们预置了大量的模板标签,这些标签在被调用时,会隐式地将后台配置或数据库中的数据“注入”到模板环境中,供我们以变量的形式使用。

  1. 全局站点与联系信息: 如果想在网站的任何位置显示公司名称、联系电话、备案号等全局信息,可以使用 systemcontact 标签。例如,想显示网站名称:{% system siteName with name="SiteName" %}{{ siteName }}。这里,system 标签获取了名为 “SiteName” 的系统配置,并将其赋值给 siteName 变量,然后我们通过 {{ siteName }} 将其显示出来。 同样,要显示联系电话,可以这样:{% contact cellphone with name="Cellphone" %}{{ cellphone }}

  2. 页面特定信息(TDK): 每个页面的标题(Title)、关键词(Keywords)和描述(Description)对 SEO 至关重要。tdk 标签能动态获取这些信息。比如在 <title> 标签中显示页面标题:<title>{% tdk with name="Title" siteName=true %}</title>。这里的 siteName=true 表示会在页面标题后自动加上网站名称,增强品牌识别度。

  3. 内容详情页: 当我们访问一篇具体的文章或产品页面时,页面主体内容就是最典型的动态信息。archiveDetail 标签用于获取当前文档的详细数据,这些数据可以直接通过 archive.属性名 的形式调用,比如 {{ archive.Title }} 会显示文章标题,{{ archive.Content }} 会显示文章正文。 例如,在一个文章详情页,我们可以这样展示内容:

    <h1>{{ archive.Title }}</h1>
    <div>
        发布时间:{{ stampToDate(archive.CreatedTime, "2006-01-02") }}
        阅读量:{{ archive.Views }}
    </div>
    <div class="article-content">
        {{ archive.Content|safe }}
    </div>
    

    这里 archive.Titlearchive.CreatedTimearchive.Views 都是直接可用的变量。archive.Content 后面的 |safe 是一个过滤器,它告诉模板引擎这段内容是安全的 HTML,不需要进行转义,从而确保富文本编辑器中排版好的内容能正确显示。

在循环中定义和使用变量

网站往往需要展示列表数据,比如文章列表、产品列表等。for 循环标签是处理这类动态内容的利器,它会在每次迭代时,将当前项的数据赋值给一个临时变量。

例如,显示一个文章列表:

{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <li>
        <a href="{{ item.Link }}">
            <h3>{{ item.Title }}</h3>
            <p>{{ item.Description|truncatechars:100 }}</p>
            <span>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
        </a>
    </li>
    {% empty %}
    <li>目前还没有任何文章。</li>
    {% endfor %}
{% endarchiveList %}

在这个例子中,archivesarchiveList 标签获取到的文章集合,而 {% for item in archives %} 语句让 item 成为每次循环中的当前文章对象。我们就可以通过 item.Linkitem.Title 等来访问每篇文章的属性。item.Description|truncatechars:100 展示了如何使用 truncatechars 过滤器截取描述内容,防止过长。

进阶:在模板内部创建和操作变量

除了从内置标签获取数据,我们还可以直接在模板中声明和操作变量,这为模板设计带来了更大的灵活性。

使用 with 标签定义临时变量

{% with ... %} 标签允许你在一个局部范围内定义临时的变量,这些变量只在该 with 标签的开始和结束之间有效。这在需要为特定区块或 include 进来的模板片段传递参数时非常方便。

{% with headerTitle="我的博客首页" headerKeywords="技术,分享,CMS" %}
    <head>
        <title>{{ headerTitle }}</title>
        <meta name="keywords" content="{{ headerKeywords }}">
    </head>
{% endwith %}

这里,headerTitleheaderKeywords 只在 with 标签内部可用。如果我们将它们传递给一个公共的 header.html 模板,可以这样写: {% include "partial/header.html" with title=headerTitle keywords=headerKeywords %}

使用 set 标签声明更灵活的变量

{% set ... %} 标签则提供了更广泛的变量声明能力。它定义的变量在当前模板文件中都是可用的,而不仅仅局限于一个区块,这在进行一些计算或存储中间结果时非常有用。

”`twig {% set greeting = “欢迎来到AnQiCMS的世界!” %}

{{ greeting }}

{#

相关文章

安企CMS模板文件如何组织目录结构以管理内容显示?

对于安企CMS(AnQiCMS)的用户来说,理解模板文件的组织方式,是高效管理网站内容展示的关键。一个清晰有序的模板目录结构,不仅能让您轻松定制网站外观,更能大大提升内容运营的灵活性和效率。 安企CMS的模板文件统一使用`.html`作为后缀,并集中存放在网站根目录下的`/template`文件夹中。而所有模板中会用到的样式表、JavaScript脚本和图片等静态资源,则有它们自己的家

2025-11-07

如何配置安企CMS以支持自适应、代码适配或PC+Mobile独立站点显示模式?

在当前的互联网环境中,用户通过各种设备浏览网站已成为常态,如何让您的网站在不同设备上都能呈现出**效果,是网站运营成功的关键之一。安企CMS(AnQiCMS)深谙此道,提供了灵活多样的显示模式配置,让您可以根据实际需求,轻松实现网站在自适应、代码适配或PC+Mobile独立站点间的切换。 这篇文章将详细带您了解如何在安企CMS中配置这些显示模式,确保您的内容在任何屏幕上都光彩照人。 ###

2025-11-07

安企CMS支持哪些模板引擎语法来控制内容显示?

作为安企CMS的使用者,我们都希望能够高效、灵活地控制网站内容的呈现方式。安企CMS在这方面做得非常出色,它提供了一套既直观又强大的模板引擎语法,让我们可以轻松实现多样化的内容显示需求。 ### 安企CMS模板引擎基础:Django风格,易学易用 安企CMS的模板引擎采用了类似Django语法的标记方式,这使得有其他模板引擎使用经验的朋友能够快速上手。它的设计理念就是力求简洁高效

2025-11-07

安企CMS的安全机制如何确保显示内容的合规性与安全性?

在网站运营中,内容的合规性与安全性是每一位站长和运营者都高度关注的焦点。它不仅关系到网站的信誉和用户信任,更可能触及法律法规的红线。作为一款致力于为用户提供高效、安全内容管理体验的系统,安企CMS(AnQiCMS)在设计之初就将这些核心诉求融入其安全机制,多维度保障我们显示内容的合规与安全。 <h3>构建安全基石:从系统底层到内容交互</h3> 安企CMS的安全性首先源于其坚实的技术基础

2025-11-07

条件判断和循环控制标签如何灵活控制内容的显示逻辑?

在安企CMS中构建动态且富有交互性的网站,离不开对内容显示逻辑的精准控制。这其中,条件判断(`if`)和循环控制(`for`)标签扮演着核心角色。它们像是一对强大的“组合拳”,让模板不再是静态的布局,而是能够根据数据变化智能响应、灵活呈现内容的舞台。 安企CMS的模板语法借鉴了Django模板引擎,其简洁高效的标记方式使得即使是模板开发新手也能快速上手。了解并善用这些标签

2025-11-07

如何为特定文档或分类自定义模板以实现个性化显示?

在安企CMS中,当您希望某个特定的文章、产品、分类或独立页面拥有独一无二的展示效果时,系统提供了灵活的模板自定义功能,让您轻松实现内容的个性化显示。这对于打造品牌特色、推出专题活动页、优化特定内容的用户体验,乃至提升SEO表现都大有裨益。 <h3>为什么需要为特定内容定制模板?</h3> 想象一下,您的网站上有一篇关于公司历史的“关于我们”页面,您可能希望它设计得庄重典雅

2025-11-07

安企CMS如何自动提取文档内容的首图作为缩略图显示?

在网站内容运营中,为每篇文章或产品页面精心挑选并设置缩略图是一项既耗时又重要的工作。一张吸引眼球的缩略图能显著提升点击率,优化用户体验,并对SEO表现有所助益。然而,面对海量内容,手动上传和调整缩略图无疑会成为巨大的负担。安企CMS深谙此道,为此提供了一套智能且灵活的解决方案,让文档内容的首图自动变身为缩略图,大大简化了运营流程。 ## 智能提取

2025-11-07

如何在文档中添加推荐属性(如头条、幻灯)以控制首页显示优先级?

在网站运营中,如何高效地展示重要内容,确保它们在用户访问首页时能第一时间被发现,是提升用户体验和转化率的关键。安企CMS为此提供了灵活的“推荐属性”功能,让我们可以轻松控制文档的显示优先级,无论是作为网站的头条新闻,还是在轮播图中醒目展示,都能实现精准调控。 ### 巧妙利用文档推荐属性,提升内容曝光 在安企CMS中,每一个文档都拥有丰富的可配置项

2025-11-07