如何在安企CMS内容页中显示上一篇和下一篇文章的链接?

在安企CMS中,为了提升网站的用户体验和内部链接的效率,为内容页添加“上一篇”和“下一篇”文章的导航链接是非常常见的需求。这些链接不仅能帮助访客更流畅地浏览相关内容,还能对网站的SEO表现产生积极影响。安企CMS提供了一套直观的模板标签,让您能够轻松实现在内容详情页中展示这些导航功能。

核心功能:使用 prevArchivenextArchive 标签

安企CMS通过 prevArchivenextArchive 这两个专门的模板标签来获取当前文章的上一篇和下一篇文章的信息。这两个标签的强大之处在于,它们能够智能地识别当前正在浏览的文档,并自动查找其在同一分类下的前一篇和后一篇内容,无需您手动传递文章ID或分类ID。

让我们来看看如何在您的安企CMS模板中实现这一功能。

1. 基本的“上一篇/下一篇”文本链接

首先,在您的文章详情页模板文件(通常位于 template/{您的模板名称}/archive/detail.html 或类似的路径下)找到合适的位置,通常是在文章内容的下方,或者侧边栏区域。您可以使用以下代码来展示简单的文本链接:

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

代码解析:

  • {% prevArchive prev %}{% nextArchive next %}:这是安企CMS提供的标签,用于获取上一篇和下一篇文章的数据。我们将获取到的数据分别赋值给 prevnext 变量。
  • {% if prev %}{% if next %}:在实际应用中,并不是所有文章都有上一篇或下一篇文章(例如,某分类下的第一篇文章没有上一篇,最后一篇文章没有下一篇)。因此,使用 if 语句来判断 prevnext 变量是否存在内容,以避免显示空的链接,并提供一个友好的提示,如“没有了”。
  • {{ prev.Link }}{{ next.Link }}:分别输出上一篇和下一篇文章的链接地址。
  • {{ prev.Title }}{{ next.Title }}:分别输出上一篇和下一篇文章的标题。

2. 添加缩略图,让导航更具吸引力

如果您的网站设计允许,并且文章通常包含缩略图,您可以将缩略图也添加到上一篇/下一篇的导航链接中,使其更具视觉吸引力。

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

代码解析:

  • {% if prev.Thumb %}{% if next.Thumb %}:这里再次使用了 if 语句,判断文章是否有缩略图 (Thumb 字段)。如果存在,则显示缩略图。
  • {{ prev.Thumb }}{{ next.Thumb }}:输出文章的缩略图地址。

您可以根据自己的模板设计和实际需求,灵活组合 prevnext 变量提供的其他字段,例如 Description (描述)、CreatedTime (创建时间)等,来构建更丰富多样的导航样式。如果需要格式化时间戳,可以使用 {{ stampToDate(item.CreatedTime, "2006-01-02") }} 这样的过滤器。

放置位置和设计考虑

这些“上一篇/下一篇”的导航通常放置在文章内容区域的底部,或者作为一个浮动的侧边栏组件。

  • 底部导航: 位于文章正文结束后,评论区或相关文章推荐区之前,为用户提供自然的内容延续。
  • 侧边栏: 如果页面布局有侧边栏,也可以考虑在侧边栏中显示精简的上一篇/下一篇文章标题,方便用户快速切换。

无论选择哪种放置方式,都应确保其设计风格与网站整体保持一致,并易于用户识别和点击。


常见问题解答 (FAQ)

1. 为什么“上一篇”或“下一篇”链接显示“没有了”?

这表示在当前文章所属的分类中,没有找到更早或更晚发布的文章。例如,如果您正在浏览一个分类下最新发布的一篇文章,它就不会有“下一篇”;同理,最旧的文章不会有“上一篇”。这是正常的行为,通过 {% if 变量 %} 判断来处理这种情况,可以避免显示空的链接。

2. 这些标签会自动限制在同一分类内吗?

是的,prevArchivenextArchive 标签默认会基于当前文章的所属分类来查找上一篇和下一篇文章。这意味着您不需要额外配置来确保用户在浏览科技文章时,不会跳转到体育文章,从而保持内容的相关性。

3. 除了标题和链接,我还能显示哪些信息?

prevnext 变量包含了文章的许多详细信息,例如 Id (文章ID)、Keywords (关键词)、Description (简介)、Logo (封面首图)、Thumb (缩略图)、Views (浏览量)、CreatedTime (发布时间)等。您可以根据需要在模板中自由调用这些字段,例如 {{ prev.Views }}{{ stampToDate(next.CreatedTime, "2006-01-02 15:04") }} 来显示更多文章信息。