在网站内容的展示中,文章的发布时间和浏览量是向读者传达信息、提升内容价值感的重要元素。一个清晰的发布时间能够让读者了解内容的即时性或时效性,而浏览量则可以反映内容的受欢迎程度。AnQiCMS 凭借其灵活的模板机制,让我们可以轻松自定义这些关键信息的显示方式,以适应不同网站的设计风格和用户需求。
本文将深入探讨如何利用 AnQiCMS 提供的模板标签,精准控制文章发布时间与浏览量的显示,帮助您打造更具吸引力和专业度的内容页面。
理解 AnQiCMS 模板标签的基础
在 AnQiCMS 中,模板标签的设计哲学是简洁而强大,它类似于 Django 模板引擎的语法。当我们希望展示文章的特定信息时,主要会用到两种类型的标签:一种是用于输出变量内容的双花括号 {{ 变量 }},另一种是用于控制逻辑和功能实现的单花括号加百分号 {% 标签 %}。对于文章相关的核心数据,archiveDetail 和 archiveList 是我们最常接触的两个标签,它们分别用于获取单篇文章的详细信息和文章列表的数据。此外,AnQiCMS 还提供了一个专门用于时间格式化的 stampToDate 标签,它能将复杂的时间戳转化为易读的日期和时间。
精准自定义文章发布时间的显示
文章的发布时间往往承载着内容的时效性,在 AnQiCMS 中,文章的发布时间通过 CreatedTime 字段表示。
在文章详情页显示发布时间
当读者访问某篇文章的详情页时,通常会关注文章何时发布。我们可以使用 archiveDetail 标签来获取当前文章的 CreatedTime。值得注意的是,CreatedTime 标签直接输出的是一个时间戳(例如 1609470335 这样的数字序列),这对于普通用户来说并不直观。为了解决这个问题,我们需要借助 stampToDate 标签进行格式化。
stampToDate 标签的用法非常灵活,它接受两个参数:时间戳和目标格式字符串。这个格式字符串遵循 GoLang 的时间格式规范,例如 2006-01-02 表示年-月-日,15:04:05 表示时:分:秒。您可以根据需求组合这些元素,创建任意的日期时间格式。
例如,如果您想在文章详情页显示“发布于:2023年08月15日 14:30”,可以这样编写模板代码:
<p>
发布于:{% archiveDetail with name="CreatedTime" format="2006年01月02日 15:04" %}
</p>
这段代码首先通过 archiveDetail with name="CreatedTime" 获取当前文章的创建时间,然后 format="2006年01月02日 15:04" 参数指示 archiveDetail 标签将其直接格式化为我们想要的显示效果。
在文章列表页显示发布时间
在文章列表页,您可能需要为多篇文章显示发布时间。这时,我们会使用 archiveList 标签来遍历文章数据。在循环体内,每一篇文章的数据都由一个 item 变量代表。
假设您已经通过 archiveList 获取了文章列表,并在 for 循环中遍历它们,您可以在循环内部这样显示每篇文章的发布时间:
{% archiveList archives with type="page" limit="10" %}
{% for item in archives %}
<article>
<h2><a href="{{ item.Link }}">{{ item.Title }}</a></h2>
<p>
发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}
</p>
{# 其他文章内容展示 #}
</article>
{% endfor %}
{% endarchiveList %}
在这里,item.CreatedTime 直接将时间戳传递给 stampToDate 函数,并以“年-月-日”的格式显示。这种方式在列表页中非常高效和简洁。
灵活展示文章浏览量
文章的浏览量是衡量内容受欢迎程度的直观指标,AnQiCMS 将其存储在 Views 字段中。
在文章详情页显示浏览量
在文章详情页,显示当前文章的浏览量通常是提升页面互动感和读者信任度的一个方式。使用 archiveDetail 标签获取 Views 字段非常直接:
<p>
浏览量:{% archiveDetail with name="Views" %} 次
</p>
这段代码将直接输出当前文章的浏览量数字,并在后面加上“次”字,使其更具可读性。
在文章列表页显示浏览量
在文章列表页,显示每篇文章的浏览量可以帮助读者快速筛选出热门内容。在 archiveList 循环中,您可以直接访问 item.Views 来展示它:
{% archiveList archives with type="page" limit="10" %}
{% for item in archives %}
<article>
<h2><a href="{{ item.Link }}">{{ item.Title }}</a></h2>
<p>
发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }} | 阅读:{{ item.Views }} 次
</p>
{# 其他文章内容展示 #}
</article>
{% endfor %}
{% endarchiveList %}
这样,每篇文章的标题下方都会清晰地显示其发布日期和阅读次数。
综合应用与**实践
将发布时间和浏览量结合起来,可以在页面上提供更丰富的内容上下文。无论是文章详情页还是列表页,都可以根据您的设计需求,将这些信息放置在合适的位置。例如,常见的布局是将它们放在文章标题下方的一行,或者在文章卡片的底部。
一个常见的文章详情页头部信息示例:
<article class="article-detail">
<h1 class="article-title">{% archiveDetail with name="Title" %}</h1>
<div class="article-meta">
<span class="meta-item">
<i class="fa fa-calendar"></i> 发布于:{% archiveDetail with name="CreatedTime" format="2006年01月02日 15:04" %}
</span>
<span class="meta-item">
<i class="fa fa-eye"></i> 阅读:{% archiveDetail with name="Views" %} 次
</span>
{# 您还可以在这里添加作者、分类、标签等信息 #}
</div>
<div class="article-content">
{%- archiveDetail articleContent with name="Content" %}
{{ articleContent|safe }} {# 注意:当输出HTML内容时,使用 |safe 过滤器防止转义 #}
</div>
</article>
通过上述方法,您可以非常灵活地控制文章发布时间和浏览量的显示,让您的 AnQiCMS 网站内容更加生动、专业。
常见问题解答 (FAQ)
- 问:为什么我设置了
CreatedTime,但页面上显示的是一串数字,而不是日期格式? 答:CreatedTime标签直接返回的是 UNIX 时间戳,这是一种计算机可读的数字格式。为了将其转换为人类可读的日期和时间,您需要配合使用stampToDate标签,并提供一个 GoLang 格式的时间字符串作为第二个参数,例如{{ stampToDate(item.CreatedTime, "2006-01-02") }}。 - 问:我可以在不同的页面(例如首页、列表页、详情页)显示不同格式的发布时间吗?
答:完全可以。
stampToDate标签的format参数是高度灵活的。您可以在网站的不同部分根据实际需求,为stampToDate提供不同的格式字符串,例如首页可能只显示2006-01-02,而详情页显示2006年01月02日 15:04:05。每个调用都是独立的,互不影响。 - 问:除了发布时间和浏览量,
archiveDetail和archiveList标签还能显示哪些文章信息? 答:这两个标签提供了非常丰富的文章相关字段,例如文章标题(Title)、链接(Link)、描述(Description)、关键词(Keywords)、分类 ID(CategoryId)、封面图片(Logo、Thumb)、文章标签等。您可以通过查看tag-archiveDetail.md或tag-archiveList.md文档来了解所有可用的字段和它们的具体用法。