如何在AnQiCMS模板中显示文章的发布时间并自定义格式?

📅 👁️ 75

在网站内容运营中,文章的发布时间是一个看似简单却至关重要的细节。它不仅影响着用户对内容时效性的判断,也是搜索引擎评估内容新鲜度、进行排名的一个重要参考因素。对于AnQiCMS的用户来说,灵活地在模板中展示和自定义文章的发布时间,是提升网站用户体验和SEO表现的基础操作。

AnQiCMS作为一款高效、可定制的内容管理系统,提供了非常友好的模板引擎,让您可以轻松地控制内容的展示方式。显示文章的发布时间并自定义其格式,正是利用其模板标签和过滤器来实现的。

获取文章发布时间:基础字段 CreatedTimeUpdatedTime

首先,我们需要了解文章的发布时间在AnQiCMS中是如何存储的。在AnQiCMS的文档模型中,每篇文章都内置了CreatedTime(创建时间)和UpdatedTime(更新时间)这两个字段。当您在后台发布或编辑文章时,这些时间会被自动记录。

在AnQiCMS的模板中,无论是通过archiveList标签循环展示文章列表,还是在文章详情页使用archiveDetail标签获取单篇文章信息,您都可以访问到这些时间字段。例如,当您在一个文章循环中,item代表当前文章对象,那么其发布时间就是item.CreatedTime;在文章详情页,如果archive代表当前文章对象,其发布时间就是archive.CreatedTime

直接在模板中输出{{archive.CreatedTime}}{{item.CreatedTime}}时,您会发现它显示的是一串数字,这就是所谓的时间戳。时间戳通常是从某个固定时间点(如1970年1月1日0时0分0秒)到当前时间所经过的秒数。虽然机器可以理解这种格式,但对于访客来说,它并不直观。因此,我们需要将其转换为易于阅读的日期和时间格式。

自定义时间格式:stampToDate 标签的魔法

AnQiCMS为此提供了一个非常实用的模板标签——stampToDate。这个标签的“魔法”在于,它能将原始的时间戳轻松转换成您想要的任何日期和时间格式。

stampToDate标签的使用方法非常直观:{{stampToDate(时间戳, "格式")}}。这里的“时间戳”就是我们前面提到的archive.CreatedTimeitem.CreatedTime等字段值。而“格式”参数,则是其核心秘密所在,它遵循Go语言(AnQiCMS的开发语言)的时间格式化规则。

Go语言的日期格式化规则与其他编程语言(如PHP或Python)有所不同。它不使用Y-m-d%Y-%m-%d这样的占位符,而是以一个特定的参考日期和时间作为模板:2006-01-02 15:04:05。您需要将这个参考日期中的各个数字替换成您希望在最终输出中看到的对应日期时间部分的格式。

例如:

  • 想要显示完整的年份(2006),就使用2006
  • 想要显示两位数的月份(01),就使用01
  • 想要显示两位数的日期(02),就使用02
  • 想要显示24小时制的小时(15),就使用15
  • 想要显示分钟(04),就使用04
  • 想要显示秒(05),就使用05

通过这个参考模板,您可以灵活组合出各种格式:

  • 仅显示日期(年-月-日): {{stampToDate(archive.CreatedTime, "2006-01-02")}}
  • 显示中文日期: {{stampToDate(archive.CreatedTime, "2006年01月02日")}}
  • 显示日期和时间: {{stampToDate(archive.CreatedTime, "2006-01-02 15:04")}}
  • 仅显示时间: {{stampToDate(archive.CreatedTime, "15:04")}}
  • 显示英文月份简写: {{stampToDate(archive.CreatedTime, "Jan 02, 2006")}}
  • 显示星期几: {{stampToDate(archive.CreatedTime, "Mon Jan 02 2006")}}

在模板中实践:显示发布时间

接下来,让我们看看如何在实际的模板中应用stampToDate标签。

1. 在文章详情页显示发布时间

在文章详情页(例如archive/detail.html或自定义的文章模板),通常您会直接访问当前文章对象archive。您可以这样展示发布时间:

<article>
    <h1>{{ archive.Title }}</h1>
    <p>
        发布于:{{ stampToDate(archive.CreatedTime, "2006年01月02日 15:04") }}
        {%- if archive.UpdatedTime and archive.UpdatedTime > archive.CreatedTime %}
        (更新于:{{ stampToDate(archive.UpdatedTime, "2006年01月02日 15:04") }})
        {%- endif %}
    </p>
    <div>
        {{ archive.Content|safe }}
    </div>
</article>

上面的代码片段中,我们首先显示了文章的CreatedTime。接着,我们添加了一个条件判断:如果UpdatedTime存在且晚于CreatedTime,则显示“更新于”时间,让访客了解内容的最新状态。这里|safe过滤器用于确保文章内容中的HTML标签能被正确解析显示。

2. 在文章列表页显示发布时间

在文章列表页(例如article/list.html或自定义的分类列表模板),您通常会使用archiveList标签循环遍历多篇文章。在循环体内部,item变量代表每一篇文章。

<ul class="article-list">
    {% archiveList archives with type="page" limit="10" %}
        {% for item in archives %}
        <li>
            <h2><a href="{{ item.Link }}">{{ item.Title }}</a></h2>
            <p class="meta">
                发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}
                <span>浏览量:{{ item.Views }}</span>
            </p>
            <p>{{ item.Description }}</p>
            <a href="{{ item.Link }}" class="read-more">阅读更多</a>
        </li>
        {% empty %}
        <li>目前还没有文章发布。</li>
        {% endfor %}
    {% endarchiveList %}
</ul>

在这个例子中,每篇文章的发布时间都以简洁的“年-月-日”格式显示在标题下方,帮助用户快速浏览。

更多自定义格式与实用技巧

掌握stampToDate标签和Go语言的时间格式化规则,您就拥有了无限的自定义能力。您可以尝试:

  • 国际化日期格式: 如果您的网站面向全球用户

相关文章

AnQiCMS如何通过“Flag”属性(如推荐、头条)控制内容在不同区域的显示?

## AnQiCMS:巧用“Flag”属性,精准掌控网站内容布局 在内容运营中,仅仅发布文章是远远不够的。如何让重要内容脱颖而出,如何在网站的不同区域智能地展示特定内容,是提升用户体验和运营效率的关键。安企CMS(AnQiCMS)深谙此道,为我们提供了一个强大而灵活的工具——“Flag”属性,来巧妙地实现这一目标。 ### 什么是内容“Flag”属性? 简单来说

2025-11-08

如何在AnQiCMS中启用Markdown编辑器并正确渲染数学公式和流程图?

在 AnQiCMS 中启用 Markdown、渲染数学公式与流程图的完整指南 AnQiCMS 作为一款高效、灵活的内容管理系统,一直在努力为内容创作者提供更便捷、更强大的内容编辑和展示能力。对于经常需要撰写技术文档、学术论文或包含复杂逻辑流程的说明,原有的富文本编辑器有时会显得力不从心。幸运的是,新版的 AnQiCMS 已经集成了对 Markdown 编辑器的支持

2025-11-08

AnQiCMS如何展示相关文章列表来提升用户浏览?

在内容运营中,引导用户在站内持续探索,延长他们的停留时间,是提升用户体验和网站转化率的关键策略之一。相关文章列表正是实现这一目标的高效工具。AnQiCMS作为一个高性能、灵活的内容管理系统,提供了多种方式来巧妙地展示相关文章,从而深度挖掘用户浏览潜力。 ### 为什么相关文章列表如此重要? 想象一下,当用户读完一篇感兴趣的文章,如果页面底部能立刻呈现几篇主题相关、可能同样吸引他们的内容

2025-11-08

如何在AnQiCMS文章详情页显示上一篇和下一篇文章链接?

当访客在网站上浏览文章时,往往希望能够方便地跳转到相关内容,特别是前一篇或后一篇。这种设计不仅提升了用户体验,也对网站的内部链接结构和搜索引擎优化有着积极的帮助。AnQiCMS 充分考虑了这种用户需求,内置了简洁高效的模板标签,帮助我们轻松实现文章详情页的上一篇和下一篇文章链接功能。 ### 在AnQiCMS文章详情页显示上一篇和下一篇文章链接 在AnQiCMS中

2025-11-08

AnQiCMS如何获取并展示单页面内容,例如“关于我们”?

在网站运营中,“关于我们”、“联系方式”这类单页面是不可或缺的组成部分,它们通常承载着企业文化、联系信息、服务介绍等相对固定且重要的内容。对于使用安企CMS(AnQiCMS)的用户来说,获取和展示这些单页面内容不仅简单高效,而且拥有高度的灵活性和定制空间。 安企CMS将这类独立且内容不经常变动的页面归类为“单页面”,并在后台提供了专门的管理模块,以便用户轻松创建、编辑和发布。下面

2025-11-08

如何在AnQiCMS中管理和显示友情链接列表?

友情链接是网站优化和用户体验的重要组成部分,它们不仅能帮助您的网站在搜索引擎中获得更好的排名,还能为访客提供更多有价值的资源,同时也是与行业伙伴建立联系的桥梁。在AnQiCMS中,管理和展示友情链接是一项直观且灵活的操作,让您能够轻松地为网站配置这些重要的外部连接。 ### 后台管理友情链接列表 要开始管理友情链接,您需要登录AnQiCMS的后台。所有的辅助功能都集中在“功能管理”菜单下

2025-11-08

AnQiCMS如何实现多站点内容的统一管理和前端显示?

在当前复杂多变的网络环境中,无论是拥有多个子品牌、子业务线的大中型企业,还是需要针对不同受众群体打造独立内容平台的自媒体运营者,如何高效地对多个网站进行统一管理,并确保前端内容展示的灵活性和一致性,已经成为内容运营的核心挑战。传统的“一个网站一套系统”模式,不仅加大了部署和维护成本,也使得内容协同和数据分析变得异常繁琐。 AnQiCMS(安企内容管理系统)正是在这样的背景下

2025-11-08

如何在AnQiCMS模板中显示面包屑导航以优化用户体验?

当你浏览网站时,是否曾有过迷失方向的感觉?在一个信息丰富的网站上,用户有时会感到不知所措,不知道当前所处的位置,也难以快速回溯到上级页面。这时,面包屑导航(Breadcrumb Navigation)就如同指路明灯,为用户提供清晰的路径指引,极大优化了他们的网站使用体验。 面包屑导航通常以“首页 > 分类 > 子分类 > 当前页面”的形式展现,它不仅能帮助用户清晰地了解自己在网站结构中的位置

2025-11-08