在网站内容运营中,为读者提供流畅的阅读体验至关重要。当用户阅读完一篇文档,如果能够便捷地跳转到相关的前一篇或后一篇内容,不仅能有效延长用户在网站上的停留时间,提高页面浏览量,也能帮助搜索引擎更好地理解网站的结构和内容关联性,进而对SEO产生积极影响。安企CMS(AnQiCMS)在模板功能设计上充分考虑了这一点,提供了简单而强大的标签,让在文档详情页显示上一篇和下一篇文档的标题与链接变得轻而易举。

要实现这个功能,我们需要修改对应文档详情页的模板文件。在安企CMS中,文档详情页的模板通常位于您的模板文件夹内,路径类似于 {模型table}/detail.html。例如,如果是文章模型,您可能需要编辑 article/detail.htmlarchive/detail.html(根据您的模型名称而定)。

安企CMS为此提供了两个非常实用的模板标签:prevArchivenextArchive。这两个标签能够智能地识别当前文档,并自动查找并提供相邻文档的信息。

如何使用 prevArchive 显示上一篇文档

prevArchive 标签用于获取当前文档的上一篇文档数据。在您的文档详情模板中,您可以这样使用它:

{% prevArchive prev %}
  {% if prev %}
    <a href="{{ prev.Link }}">{{ prev.Title }}</a>
  {% else %}
    <span>没有上一篇了</span>
  {% endif %}
{% endprevArchive %}

在这段代码中:

  • {% prevArchive prev %} 声明了一个变量 prev,用来存储上一篇文档的信息。
  • {% if prev %} 是一个条件判断,用来检查是否存在上一篇文档。如果存在,就会渲染链接;否则,显示“没有上一篇了”。
  • {{ prev.Link }} 会输出上一篇文档的链接地址。
  • {{ prev.Title }} 会输出上一篇文档的标题。

通过这种方式,您可以轻松地在页面上创建一个指向上一篇文档的导航链接。

如何使用 nextArchive 显示下一篇文档

prevArchive 类似,nextArchive 标签用于获取当前文档的下一篇文档数据。它的使用方式也非常直观:

{% nextArchive next %}
  {% if next %}
    <a href="{{ next.Link }}">{{ next.Title }}</a>
  {% else %}
    <span>没有下一篇了</span>
  {% endif %}
{% endnextArchive %}

这段代码的逻辑与 prevArchive 完全相同,只是它获取的是下一篇文档的信息,并将其存储在变量 next 中。

整合到文档详情页的实践

通常,我们会将上一篇和下一篇的导航链接放置在文档内容的底部,或者侧边栏,以方便用户浏览。一个常见的布局可能是:

<article>
    <!-- 这里是文档的标题、内容等核心部分 -->
    <h1>{{ archive.Title }}</h1>
    <div class="content">
        {{ archive.Content|safe }}
    </div>

    <div class="document-navigation">
        <div class="prev-document">
            {% prevArchive prev %}
              {% if prev %}
                <span>上一篇:</span><a href="{{ prev.Link }}">{{ prev.Title }}</a>
              {% else %}
                <span>没有上一篇了</span>
              {% endif %}
            {% endprevArchive %}
        </div>
        <div class="next-document">
            {% nextArchive next %}
              {% if next %}
                <span>下一篇:</span><a href="{{ next.Link }}">{{ next.Title }}</a>
              {% else %}
                <span>没有下一篇了</span>
              {% endif %}
            {% endnextArchive %}
        </div>
    </div>
</article>

这段代码提供了一个基本的结构,您可以根据自己的网站设计,通过CSS来美化这些导航链接,例如添加箭头图标、显示缩略图等,以提升用户体验。prevnext 变量除了 LinkTitle 之外,还支持 Thumb(缩略图)、Description(描述)等字段,让您可以创建更丰富多彩的导航样式。

通过以上方法,您便能有效地利用安企CMS的模板标签,为网站的文档详情页增添实用的前后导航功能,让用户在您的网站上畅游无阻。


常见问题 (FAQ)

  1. 为什么我添加了标签后,页面上不显示上一篇或下一篇文档的链接? 这通常有几个原因。首先,请确保您修改的是正确的文档详情页模板文件(例如 archive/detail.htmlarticle/detail.html)。其次,检查您的网站中是否存在相邻的文档。如果没有前一篇或后一篇文档(例如当前文档是某个分类的第一篇或最后一篇),那么对应的链接自然不会显示。另外,也要确认模板代码没有拼写错误,尤其是 prevArchivenextArchive 标签及其变量名。

  2. 安企CMS是如何判断哪一篇是“上一篇”或“下一篇”文档的? 安企CMS在文档详情页,默认会根据当前文档的发布时间(CreatedTime)或者文档ID,在当前文档所属的分类(Category)中,查找时间上或ID上最近的前一篇和后一篇文档。这意味着,只有在同一分类下的文档才会被视为相邻文档进行导航。

  3. 除了标题和链接,我还能显示上一篇/下一篇文档的其他信息吗? 当然可以。prevnext 变量是完整的文档对象,除了 Title(标题)和 Link(链接)外,它们还包含许多其他可用的字段,例如 Id(文档ID)、Thumb(缩略图)、Description(简介)、Views(浏览量)和 CreatedTime(发布时间)。您可以根据需求,在 {% if prev %}{% if next %} 块内部通过 {{ prev.Thumb }}{{ next.Description }} 等方式调用这些信息,从而创建更具吸引力的前后文档导航。