如何使用`archiveDetail`标签获取并完整显示特定文档的标题、内容和自定义字段?

📅 👁️ 82

在 AnQiCMS 中,展示单个文档的详细内容是网站构建的核心需求之一。无论是文章详情页、产品详情页,还是其他自定义类型的内容展示,我们都需要一种灵活高效的方式来获取并呈现文档的标题、正文以及根据业务需求定义的自定义字段。archiveDetail 标签正是为此而生,它能帮助您轻松实现这一目标。

深入了解 archiveDetail 标签:获取特定文档的核心信息

archiveDetail 标签主要用于获取单个文档的详细数据。当您需要在一个页面中完整呈现某篇文档的所有信息时,它将是您的得力助手。这个标签的强大之处在于,它不仅能够获取文档的默认字段(如标题、内容),还能轻松调取您在后台“内容模型”中为该文档类型自定义的各种字段。

它的基本使用语法是: {% archiveDetail 变量名称 with name="字段名称" id="文档ID" %}

其中,变量名称 是可选的,如果设置了,您可以将获取到的数据赋值给这个变量,之后通过 {{变量名称}} 来引用;如果不设置,标签会尝试直接输出指定字段的值。

  • 指定文档: 通常情况下,archiveDetail 在文档详情页会自动识别当前页面的文档。但如果您需要获取特定ID的文档信息,可以加上 id="文档ID" 参数,例如 id="123"。此外,也可以通过 token="文档URL别名" 参数来指定文档。
  • 多站点支持: 如果您的 AnQiCMS 部署了多个站点,并且需要跨站点获取文档数据,可以使用 siteId="站点ID" 参数。

获取文档核心信息:标题与内容

要显示文档的标题和内容,您只需要在 name 参数中指定对应的字段名即可。

  1. 获取文档标题 (Title): 文档标题是内容的核心标识。使用 name="Title" 即可获取。

    {# 获取当前页面文档的标题 #}
    <h1>{% archiveDetail with name="Title" %}</h1>
    
    {# 获取ID为1的文档标题,并赋值给archiveTitle变量 #}
    {% archiveDetail archiveTitle with name="Title" id="1" %}
    <p>指定文档标题:{{ archiveTitle }}</p>
    
  2. 获取文档内容 (Content): 文档内容通常包含丰富的 HTML 结构,包括文本、图片、链接等。获取时需要注意一个重要的过滤器:|safe

    {# 获取当前页面文档的内容,并使用|safe过滤器防止HTML转义 #}
    <div class="article-content">
        {% archiveDetail articleContent with name="Content" %}
        {{ articleContent|safe }}
    </div>
    
    {# 如果您的内容包含Markdown语法,可以使用render=true进行转换 #}
    <div class="article-content">
        {% archiveDetail articleContent with name="Content" render=true %}
        {{ articleContent|safe }}
    </div>
    
    {# 如果您使用了图片懒加载插件,可以指定lazy="data-src"来适配 #}
    <div class="article-content">
        {% archiveDetail articleContent with name="Content" lazy="data-src" %}
        {{ articleContent|safe }}
    </div>
    

    特别提醒: Content 字段通常存储的是带有 HTML 标签的富文本内容。为了让浏览器正确解析并显示这些 HTML 结构,您必须在输出时使用 |safe 过滤器(例如 {{ articleContent|safe }})。否则,HTML 标签将作为纯文本显示在页面上,影响阅读体验。

深入自定义字段:灵活展示个性化内容

AnQiCMS 强大的“内容模型”功能允许您为不同类型的文档添加各种自定义字段,以满足特定的业务需求,例如产品的价格、文章的作者、视频的时长等。archiveDetail 标签也完全支持获取这些自定义字段。

  1. 获取特定自定义字段: 如果您知道自定义字段的“调用字段”名称(在后台内容模型中定义),可以直接通过 name="自定义字段名" 来获取其值。

    假设您在内容模型中定义了一个名为 author 的自定义字段:

    {# 获取当前文档的作者信息 #}
    <p>作者:{% archiveDetail with name="author" %}</p>
    
    {# 获取ID为10的文档的产品价格字段 #}
    <p>产品价格:{% archiveDetail with name="price" id="10" %}</p>
    
  2. 循环展示所有自定义字段 (archiveParams): 有时候,您可能希望将文档的所有自定义字段都遍历展示出来,尤其是在产品参数列表等场景。此时,可以使用 archiveParams 标签来获取文档的所有自定义参数,然后通过 for 循环进行展示。

    <div class="custom-params">
        <h3>更多参数:</h3>
        {% archiveParams params %}
        {% for item in params %}
        <p>
            <span>{{ item.Name }}:</span>
            <span>{{ item.Value }}</span>
        </p>
        {% endfor %}
        {% endarchiveParams %}
    </div>
    

    archiveParams 标签会返回一个包含所有自定义字段的数组(或映射,取决于 sorted 参数)。item.Name 是自定义字段的显示名称,item.Value 则是其对应的值。

综合示例:构建一个完整的文档详情页

将上述元素整合起来,一个典型的文档详情页模板片段可能如下所示:

”`twig <!DOCTYPE html>

<meta charset="UTF-8">
<title>{% archiveDetail with name="Title" siteName=true %}</title>
<meta name="description" content="{% archiveDetail with name="Description" %}">
<meta name="keywords" content="{% archiveDetail with name="Keywords" %}">
<link rel="stylesheet" href="{% system with name="TemplateUrl" %}/css/style.css">

<header>
    <!-- 导航、Logo等页面头部元素 -->
</header>

<main class="container">
    <article class="document-detail">
        <h1 class="document-title">{% archiveDetail with name="Title" %}</h1>

        <div class="document-meta">
            <span>分类:<a href="{% categoryDetail with name='Link' %}">{% categoryDetail with name='Title' %}</a></span>
            <span>发布日期:{% archiveDetail with name="CreatedTime" format="2006-01-02" %}</span>
            <span>浏览量:{% archiveDetail with name="Views" %}</span>
            {% archiveDetail author with name="author" %}{# 假设有一个自定义字段叫 author #}
            {% if author %}<span class="document-author">作者:{{ author }}</span>{% endif %}
        </div>

        <div class="document-description">
            <p>{% archiveDetail with name="Description" %}</p>
        </div>

        <div class="document-content">
            {% archiveDetail documentContent with name

相关文章

`archiveList`标签如何精确控制文档列表的显示数量、排序和筛选条件?

在安企CMS中,`archiveList` 标签是用于动态调用和展示文档列表的核心工具。无论是博客文章、产品展示还是新闻动态,这个标签都能帮助您根据特定的需求,灵活地控制文档的显示数量、排序方式以及各种筛选条件。深入理解其各项参数,将使您能够构建出高度定制化且功能强大的内容展示页面。 ### 精确控制文档显示数量:`limit` 参数的运用 文档列表的数量控制主要通过 `limit`

2025-11-08

如何为AnQiCMS网站的特定内容(如文档、分类、单页面)自定义独立的显示模板?

在网站运营中,我们时常会遇到需要为特定内容赋予独特“面貌”的场景。可能是一个承载重要信息的“关于我们”页面,需要别具一格的布局;也可能是一系列产品详情,希望展现与众不同的参数对比;甚至是一个内容分类,期待以更具吸引力的方式呈现列表。安企CMS(AnQiCMS)深知这些精细化内容展示的需求,因此提供了一套灵活且强大的模板定制机制,让我们可以为文档、分类和单页面等内容量身打造专属的显示模板

2025-11-08

AnQiCMS支持的自适应、代码适配、PC+Mobile独立模式如何影响网站在不同设备上的显示效果?

在当今多屏互联的时代,网站能否在不同设备上流畅、高效地展现,直接关系到用户体验和品牌形象。AnQiCMS作为一款功能丰富的企业级内容管理系统,深谙此道,为用户提供了三种灵活的网站显示模式,以应对多样化的设备访问需求:自适应、代码适配和PC+Mobile独立模式。理解它们各自的工作原理及其对网站显示效果的影响,对于运营者来说至关重要。 ### 自适应模式

2025-11-08

制作AnQiCMS模板时,如何确保UTF-8编码以避免前端页面乱码?

在使用安企CMS(AnQiCMS)搭建网站时,确保网站前端页面的正常显示,避免出现烦人的乱码,是每个运营者都需要关注的重要细节。其中,模板文件的字符编码是一个关键点。如果模板文件的编码设置不正确,即使网站内容本身没有问题,最终展现在用户面前的页面也可能是一堆无法识别的字符。 **深入理解乱码问题** 当我们谈论网站乱码,通常是指浏览器无法正确识别和显示网页中的文本内容

2025-11-08

`prevArchive`和`nextArchive`标签如何在文档详情页显示上一篇/下一篇文档的链接和标题?

当我们在AnQiCMS搭建的网站上浏览内容时,一篇篇精心制作的文档为读者带来了价值。为了让读者的阅读体验更加流畅,并鼓励他们探索更多相关内容,在每篇文章的末尾提供“上一篇”和“下一篇”的导航链接显得尤为重要。这不仅能够有效引导用户在网站内进行深度浏览,提升页面访问量和用户粘性,对于网站的内部链接结构和SEO优化也大有裨益。 AnQiCMS作为一款注重用户体验和SEO友好的内容管理系统

2025-11-08

如何使用`categoryList`标签构建多级分类导航或在内容区域展示分类列表?

在安企CMS中,妥善组织网站内容分类是提升用户体验和网站可维护性的重要一环。无论是构建清晰的多级导航菜单,帮助用户快速定位信息,还是在页面内容区域巧妙地展示不同分类的内容,`categoryList`标签都是实现这些功能的核心工具。 ### 核心标签:`categoryList` 简介 `categoryList`标签是安企CMS模板引擎中专门用于获取网站分类列表的标签。它非常灵活

2025-11-08

`categoryDetail`标签如何获取并显示特定分类的名称、描述、Banner图和缩略图?

在AnQiCMS的模板制作中,我们经常需要获取并展示特定分类的详细信息,例如分类的名称、描述,甚至是预设的Banner图和缩略图。`categoryDetail`标签正是为此而生,它能帮助我们轻松地从数据库中提取这些数据,并在网站前端进行灵活展示。 ### 理解 `categoryDetail` 标签的核心作用 `categoryDetail`标签的主要功能是获取单个分类的详细数据

2025-11-08

如何通过`pageList`和`pageDetail`标签有效管理和显示网站的单页面内容?

在网站运营中,单页面内容扮演着不可或缺的角色,它们通常承载着“关于我们”、“联系我们”、“服务条款”、“隐私政策”等重要信息,既需要清晰展示,又要求管理便捷。AnQiCMS 提供了 `pageList` 和 `pageDetail` 这两个强大的模板标签,帮助我们高效地管理和显示这些单页面内容。 ### 管理单页面内容:后台操作指引 AnQiCMS

2025-11-08