AnQiCMS的“内容模型自定义字段”如何在前端页面中灵活调用和显示其值?

📅 👁️ 94

安企CMS在内容管理方面做得非常出色,特别是其灵活的内容模型和自定义字段功能,为我们搭建个性化网站提供了极大的便利。网站的内容往往不仅仅是标题和正文,我们可能还需要文章的作者、发布来源、产品规格、活动地点、房屋面积等各种额外信息。这些自定义字段就像是内容的“专属档案袋”,让我们能根据业务需求,为每种内容类型量身定制所需的属性。

那么,当我们在后台为内容模型创建了这些丰富的自定义字段后,如何在网站前端页面中巧妙地调用并展示它们的值呢?这正是我们这篇文章要探讨的核心。

自定义字段:让你的内容管理更灵活

首先,让我们简单回顾一下安企CMS的自定义字段。在后台,进入“内容管理”下的“内容模型”,你会看到系统默认提供了文章和产品模型。当然,你也可以根据自己的业务需求,添加全新的内容模型。每个内容模型都可以配置专属的“自定义字段”,例如,你可以为“产品模型”添加“产品型号”、“颜色”、“库存数量”等字段。

在添加字段时,我们需要定义“参数名”(供后台显示)和“调用字段”(供模板调用),并选择合适的“字段类型”(如单行文本、数字、多行文本、单项选择、多项选择、下拉选择等),还可以设置是否必填和默认值。正是这个“调用字段”,决定了我们在前端模板中如何精确地引用和显示这些自定义信息。

在前端页面中调用自定义字段的几种方法

安企CMS的模板引擎语法类似Django,这让字段的调用变得直观且强大。针对自定义字段值的调用,通常有以下几种灵活的方式:

方法一:直接通过变量访问(适用于当前内容详情页)

当你正在制作文章详情页、产品详情页这类直接展示内容完整信息的模板时,系统会自动将当前内容的全部数据(包括自定义字段)加载到 archive 这个变量中(对于分类详情页则是 category 变量)。这时,你可以直接通过点语法来访问自定义字段的值。

假设你为文章模型创建了一个“作者”字段,其“调用字段”设置为 author,那么在文章详情页的模板中,你可以这样简单地显示它:

<p>文章作者:{{ archive.author }}</p>

如果你的自定义字段是数字类型,比如“阅读时长”的调用字段是 readTime

<p>预计阅读时长:{{ archive.readTime }} 分钟</p>

这种方法非常便捷,特别适合在当前内容的详情页中直接展示。

方法二:使用 archiveDetailcategoryDetail 标签

当你需要更精确地控制字段的获取,或者想获取*非当前页面*的特定内容(如在侧边栏显示某篇指定ID文章的某个自定义字段),archiveDetail(用于文章或产品)或 categoryDetail(用于分类)标签就显得非常有用。

这两个标签都可以通过 name 参数来指定要获取的字段。 比如,你可以在首页某个模块中,展示ID为10的文章的“作者”字段:

<div>特荐文章作者:{% archiveDetail with name="author" id="10" %}</div>

或者在分类列表页中,显示ID为5的分类的某个自定义字段 bannerText

<div>分类横幅文字:{% categoryDetail with name="bannerText" id="5" %}</div>

这种方式提供了更高的灵活性,让你能够跨内容调用特定字段。

方法三:利用 archiveParams 标签循环获取

有时候,你可能希望在页面上动态地展示所有或部分自定义字段,而不需要预先知道每个字段的具体名称,或者这些字段的数量和类型可能会变化。这时,archiveParams 标签就派上用场了。它能获取指定文档(或当前文档)的所有自定义参数,并以数组或Map的形式提供,方便我们进行循环遍历。

这个标签默认会获取当前文档的所有自定义字段,并将它们组织成一个可循环的数组。你可以这样在模板中遍历并显示它们:

<div class="custom-fields">
    {% 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 就会是空字符串。

如果你的业务场景需要更精细的控制,例如只显示特定名称的自定义字段,或者你希望通过字段名而非循环索引来访问,可以将 archiveParams 标签的 sorted 参数设置为 false。这样,params 变量将成为一个Map,你可以直接通过字段名来访问:

<div class="specific-fields">
    {% archiveParams params with sorted=false %}
        <p>文章来源:{{ params.source.Value }}</p>
        <p>发布日期:{{ params.publishDate.Value }}</p>
    {% endarchiveParams %}
</div>

这里 sourcepublishDate 都是你在后台设置的自定义字段的“调用字段”。

处理不同类型的自定义字段值

自定义字段的类型多种多样,其在前端的显示方式也需要我们进行适当的处理:

  • 单行文本和数字类型: 这类字段的值通常是简单的字符串或数字,直接调用即可显示。

    <p>联系电话:{{ archive.phoneNumber }}</p>
    <p>商品价格:¥{{ archive.price }}</p>
    
  • 多行文本(富文本编辑器): 如果自定义字段使用了富文本编辑器,其值可能包含HTML标签。为了在前端正确渲染这些HTML,而不是直接显示源代码,你需要使用 |safe 过滤器。

    <div class="product-features">
        <h3>产品特点</h3>
        {{ archive.features|safe }}
    </div>
    

    如果富文本内容是Markdown格式,且后台启用了Markdown编辑器,你可以额外添加 render=true 参数(配合 |safe)来确保其被正确渲染为HTML。

    <div class="markdown-content">
        {{ archive.markdownIntro|render|safe }}
    </div>
    
  • 单项选择、多项选择和下拉选择:

    • 单项选择和下拉选择通常只存储一个值,可以像普通文本一样直接调用。
      
      <p>产品颜色:{{ archive.color }}</p>
      
    • 多项选择通常会存储多个值,这些值在数据库中可能以逗号或其他分隔符连接的字符串形式存在,也可能直接是数组。如果它是逗号分隔的字符串

相关文章

如何在AnQiCMS网站底部正确显示备案号和版权信息,并确保自动更新年份?

网站底部的信息,如备案号和版权声明,看似不起眼,却是网站专业度、法律合规性和品牌信任度的重要体现。对于运营者而言,正确地展示这些信息,并确保年份能够自动更新,不仅省心,也能避免每年手动修改的麻烦。在AnQiCMS中,实现这一目标非常直接和灵活。 ### 在后台设置备案号和版权信息 在AnQiCMS中,网站的备案号和版权信息都可以在统一的“全局设置”中进行配置

2025-11-09

AnQiCMS如何处理和显示文章内容中的图片懒加载(lazyload)功能?

在网站运营中,图片内容的加载速度对于用户体验和搜索引擎优化(SEO)都至关重要。尤其是当文章中包含大量图片时,如果所有图片在页面加载时一次性全部加载,可能会导致页面响应缓慢,甚至影响用户耐心。为了解决这个问题,图片懒加载(Lazyload)技术应运而生。 AnQiCMS 作为一款高效的企业级内容管理系统,充分考虑了内容发布的灵活性和网站性能优化,为文章内容中的图片懒加载提供了简洁而强大的支持

2025-11-09

如何利用AnQiCMS的推荐属性(flag)筛选并显示特定内容,如“头条”或“幻灯”?

AnQiCMS 提供了一套灵活的推荐属性(flag)机制,让网站运营者能够轻松地筛选并突出显示特定的内容,无论是网站首页的“头条新闻”、轮播图中的“幻灯片”,还是其他需要特别关注的“推荐”内容。这项功能大大提升了内容运营的效率和网站内容的丰富性。 ### 认识推荐属性:给内容贴上“专属标签” 想象一下,你发布了许多精彩的文章和产品信息,但总有一些是当前最重要、最热门或者需要在特定位置展示的

2025-11-09

AnQiCMS是否支持为不同分类的页面设置自定义模板,以实现差异化显示?

在网站运营中,我们经常会遇到这样的需求:不同类型的内容或不同主题的页面,需要以独特的方式呈现,以更好地吸引访问者,传达信息,甚至提升品牌形象。这就涉及到模板的定制化能力。安企CMS(AnQiCMS)在这一方面,确实提供了强大而灵活的支持,允许用户为不同分类的页面设置自定义模板,从而实现差异化的内容显示。 安企CMS的模板设计体系,旨在为用户提供高度的可定制性

2025-11-09

如何为AnQiCMS的单页面设置独立的显示布局和元素,如“关于我们”页面?

在AnQiCMS中,为“关于我们”这类单页面设置独立的显示布局和元素,能够让网站内容呈现更具特色和专业性。AnQiCMS凭借其灵活的模板引擎和模块化设计,让这一过程变得直观且高效。 ### 为什么需要为单页面定制专属布局? 在使用AnQiCMS构建网站时,我们经常会遇到这样的需求:某些特定页面,比如“关于我们”、“联系我们”或者一些专题落地页

2025-11-09

AnQiCMS如何确保通过`safe`过滤器输出的HTML内容在前端安全且正确解析显示?

在网站运营中,我们经常需要展示用户输入或由富文本编辑器生成的HTML内容。如何确保这些动态内容既能正确显示,又能避免潜在的安全风险,是每个内容管理系统都必须面对的挑战。AnQiCMS作为一款注重安全的Go语言CMS,在这个方面有着一套成熟的机制,尤其是它提供的`safe`过滤器,在保障前端内容安全与正确解析显示上扮演着关键角色。 ### 默认的安全考量:为什么要自动转义? 首先

2025-11-09

如何在AnQiCMS的评论列表中正确显示用户评论及其审核状态?

在AnQiCMS中管理和展示用户评论,特别是它们的审核状态,是内容运营中一个非常实用的功能。它不仅能帮助我们维护社区秩序,还能灵活控制网站内容的呈现,确保发布内容的质量和合规性。接下来,我们就来详细了解如何在您的网站评论列表中正确显示用户评论及其审核状态。 ### 核心功能:评论列表的调用 要在网站页面上显示用户评论,我们需要借助AnQiCMS强大的模板标签系统。其中

2025-11-09

AnQiCMS是否提供便捷的标签来显示网站Logo和网站名称,并支持多站点调用?

在管理和运营网站的过程中,网站的品牌形象——Logo和网站名称——无疑是最核心的标识。它们不仅代表着网站的身份,也直接影响着用户对品牌的认知。对于像AnQiCMS这样致力于提供高效内容管理解决方案的系统来说,如何便捷地显示这些关键信息,并支持多站点环境下的灵活调用,是衡量其易用性和强大功能的重要标准。 AnQiCMS在这方面的设计理念,正是围绕着“便捷”和“灵活”展开的

2025-11-09