如何在前端模板中显示不同内容模型的自定义字段内容?

📅 👁️ 55

AnQiCMS 的内容模型功能为网站运营带来了极大的灵活性,它允许我们根据业务的实际需要,来定义各种个性化的内容结构。无论是文章、产品、活动,还是其他任何自定义类型的内容,我们都可以为其添加独特的字段。那么,如何在网站前端模板中灵活地展示这些内容模型中的自定义字段呢?接下来,让我们一起探索这个实用的技巧。

理解 AnQiCMS 的内容模型与自定义字段

在使用 AnQiCMS 进行内容创作时,我们不仅仅局限于文章标题和正文这类基础字段。通过内容模型功能,我们可以为不同类型的内容创建专属的数据字段。例如,如果你的网站需要展示产品信息,你可能会为“产品模型”添加“产品型号”、“产品颜色”、“库存数量”、“产品详情图集”等自定义字段。这些字段让你的内容更具结构化,也方便用户快速获取所需信息。

这些自定义字段的设置,通常是在 AnQiCMS 后台的“内容管理”下找到“内容模型”功能。在这里,你可以选择编辑现有的模型(如“文章模型”或“产品模型”),或者创建全新的内容模型。在模型编辑界面,你会看到一个“内容模型自定义字段”的区域。在这里,我们可以添加新字段,并为它们指定“参数名”(供后台显示)、“调用字段”(供前端模板调用,建议使用英文字母小写且唯一)、“字段类型”(如单行文本、数字、多行文本、单项选择、多项选择、下拉选择等),以及是否必填和默认值。

举个例子,假设我们为“产品模型”添加了一个名为“产品型号”的自定义字段,它的“调用字段”设置为 model_number。同时,我们可能还添加了一个“产品亮点”字段,其“调用字段”为 highlights,字段类型为“多行文本”,用于描述产品的特色优势。

在前端模板中显示自定义字段内容

AnQiCMS 的前端模板使用类似 Django 的语法,变量通过双花括号 {{ }} 来输出,而标签则使用 {% %} 包裹。当我们需要在模板中展示内容模型的自定义字段时,主要会用到 archiveDetailcategoryDetailpageDetail 等详情标签,以及 archiveParams 标签。

1. 显示单个自定义字段内容

如果你明确知道要显示哪个自定义字段,并且它通常是单行文本或数字这类简单数据,你可以直接使用 archiveDetail 标签(在文档详情页)、categoryDetail 标签(在分类详情页)或 pageDetail 标签(在单页详情页)来调用。

例如,在产品详情页,我们想要显示产品的型号 (model_number):

<p>产品型号:{% archiveDetail with name="model_number" %}</p>

如果你希望将这个值赋值给一个变量再使用,也可以这样做:

{% archiveDetail productModelNumber with name="model_number" %}
<p>产品型号:{{ productModelNumber }}</p>

这种方法简洁明了,适用于我们已知自定义字段名称的场景。

2. 处理包含多项或富文本内容的自定义字段

有些自定义字段的类型可能是多选、组图,或者像“产品亮点”这样的富文本内容。这些字段的数据通常以数组或带有 HTML 结构的形式存储,我们需要特别处理。

多值字段(例如:产品图集、多项选择): 如果你的自定义字段(如 product_images)存储的是一组图片或多项选择的值,它在模板中会是一个数组。你需要结合 for 循环来遍历并显示它们。

{% archiveDetail productImages with name="product_images" %}
<div class="product-gallery">
    {% for image in productImages %}
        <img src="{{ image }}" alt="产品图片">
    {% endfor %}
</div>

富文本或 Markdown 内容: 当自定义字段类型为多行文本编辑器(通常支持富文本编辑或 Markdown 格式)时,其内容可能包含 HTML 标签。为了确保这些内容能被浏览器正确解析并显示样式,我们需要使用 |safe 过滤器。如果后台内容设置中启用了 Markdown 编辑器,并且字段内容是 Markdown 格式,则需要先用 |render 过滤器将其转换为 HTML,再用 |safe 过滤器。

例如,显示“产品亮点” (highlights) 字段的内容:

{# 假设 highlights 是富文本内容 #}
<div class="product-highlights">
    {{ archiveDetail with name="highlights" | safe }}
</div>

{# 假设 highlights 是 Markdown 内容,且后台启用了 Markdown 编辑器 #}
<div class="product-highlights">
    {{ archiveDetail with name="highlights" | render | safe }}
</div>

小提示: 当你在列表页(如 archiveList 循环内部)需要显示自定义字段时,你可以直接通过 item.自定义字段名 来访问,例如 {{ item.model_number }}

3. 动态遍历显示所有自定义字段

如果你希望在模板中不预设自定义字段的名称,而是动态地显示一个内容模型下的所有自定义字段及其值(例如,在产品参数区域),archiveParams 标签会非常有用。它会返回一个自定义字段的列表,你可以通过 for 循环来遍历它们。

<div class="product-parameters">
    <h3>产品参数</h3>
    {% archiveParams params %}
        {% for item in params %}
        <p>
            <span>{{ item.Name }}:</span> <!-- 自定义字段的显示名称 -->
            <span>{{ item.Value }}</span> <!-- 自定义字段的值 -->
        </p>
        {% endfor %}
    {% endarchiveParams %}
</div>

这里 item.Name 会显示你在后台设置的“参数名”(例如“产品型号”),而 item.Value 则显示该字段所填写的内容。这对于构建灵活的产品参数表格或信息块特别方便。

如果某个 item.Value 字段包含 HTML 或 Markdown 内容,别忘了加上 |safe|render|safe 过滤器。

4. 其他内容模型的自定义字段调用

除了文档模型,分类模型和单页面也可以拥有自定义字段。调用方式与文档模型类似,只需将标签名称替换为 categoryDetailpageDetail 即可。

例如,在分类详情页显示分类的自定义“特色描述”字段(调用字段名为 feature_desc):

<div class="category-feature">
    <h4>特色描述</h4>
    {{ categoryDetail with name="feature_desc" | safe }}
</div>

实践建议

  • 命名规范: 在后台设置自定义字段时,“调用字段”

相关文章

AnQiCMS 如何实现文章内容中特定关键词的批量替换并前端展示?

在内容运营的日常工作中,我们经常会遇到需要对大量文章内容进行统一调整的情况。这可能涉及更新品牌名称、修正行业术语、统一产品型号,甚至是为了SEO目的而调整关键词密度。手动逐一修改成百上千篇文章无疑是巨大的工作量,且极易出错。AnQiCMS提供了一项非常实用的功能,能够帮助我们高效地实现文章内容中特定关键词的批量替换,并确保这些改动在网站前端正确展示。 ### 为什么需要批量替换文章内容关键词

2025-11-07

怎样在文章详情页显示上一篇和下一篇文章的标题及链接?

在安企CMS中,为文章详情页添加上一篇和下一篇文章的标题及链接,不仅能优化用户在您网站上的浏览体验,引导他们发现更多相关内容,还能在一定程度上改善网站内部链接结构。安企CMS凭借其简洁高效的模板引擎,让这项功能的实现变得非常直观。 ### 核心功能揭秘:prevArchive 与 nextArchive 标签 安企CMS的模板系统内置了两个专为处理文章导航的标签:`prevArchive`

2025-11-07

AnQiCMS 模板如何格式化时间戳并显示为指定日期时间格式?

在AnQiCMS模板中轻松格式化时间戳:自定义日期时间显示指南 在网站运营中,内容发布时间、更新时间、评论时间等日期信息,是我们向访客传达信息的重要组成部分。很多时候,从数据库中获取到的时间数据通常是时间戳(一串数字),这对于用户来说并不直观。如何将这些原始的时间戳转化为易于阅读的日期时间格式,并根据页面设计灵活调整显示方式,是模板开发中经常遇到的需求。 AnQiCMS

2025-11-07

如何在分类列表页只显示当前分类的文档,而不包含子分类的文档?

在运营网站时,我们经常会遇到内容展示的需求,其中一个常见场景就是在分类列表页如何精确控制显示内容。有时,我们希望在一个主分类页面,不仅展示该分类下的文档,也包括其所有子分类的文档,以提供更全面的信息。然而,在另一些情况下,为了保持页面主题的纯粹性和内容的聚焦性,我们可能只希望严格地展示当前分类下的文档,而不包含任何子分类的内容。 安企CMS作为一款功能灵活的内容管理系统

2025-11-07

AnQiCMS 网站是否支持自动将上传图片转换为WebP格式以加快显示速度?

网站的加载速度是用户体验和搜索引擎优化的重要考量标准。其中,图片作为页面内容的重要组成部分,其加载效率对整体网站性能有着显著影响。WebP 是一种现代图像格式,与传统的 JPEG、PNG 相比,它能以更小的文件体积提供相近甚至更高的图像质量,从而显著加快网页加载速度。 AnQiCMS 作为一款注重效率和性能的内容管理系统,充分考虑了网站在图片处理方面的优化需求。对于“AnQiCMS

2025-11-07

如何在前端模板中显示当前文章所属分类的名称和链接?

在网站内容运营中,文章的分类信息不仅能帮助用户快速理解内容归属,更是提升网站导航体验和搜索引擎优化(SEO)效果的关键。对于使用 AnQiCMS 构建网站的朋友来说,如何在每篇文章的详情页中,准确地显示其所属分类的名称并提供链接,是一个非常实用且基础的需求。AnQiCMS 提供了强大而灵活的模板标签,让我们能够轻松实现这一功能。 ### 巧妙利用 `archiveDetail`

2025-11-07

AnQiCMS 如何在网站底部显示备案号和版权信息?

在运营网站的过程中,无论是为了满足法律法规的要求,还是为了提升网站的专业度和用户信任度,在网站底部清晰地展示备案号和版权信息都是非常重要的一环。AnQiCMS作为一个高效的内容管理系统,提供了非常灵活且直观的方式来配置和显示这些关键信息。 接下来,我们将分步骤介绍如何在AnQiCMS中设置并显示网站底部的备案号和版权信息。 ### 第一步:在后台填写备案号和版权信息 首先

2025-11-07

怎样在AnQiCMS网站中为图片添加水印以保护原创内容?

在数字内容日益丰富的今天,保护原创作品的版权显得尤为重要,尤其是对于图片这类视觉内容。当您的网站发布了大量精心制作的图片时,如果不加以保护,很容易被他人随意复制、转载,这不仅侵犯了您的劳动成果,也削弱了内容的独特性。为图片添加水印,是一种简单而有效的版权保护手段,它能在不影响图片美观的前提下,明确宣示内容所有权,有效 deterrent 未经授权的使用。 安企CMS作为一款高效

2025-11-07