如何在文档详情页显示相关文档列表,如同分类推荐或基于关键词推荐?

在网站内容运营中,为访问者提供更多相关的、可能感兴趣的内容,是提升用户体验、延长网站停留时间并促进内容深度浏览的关键策略。这不仅能有效引导用户探索更多信息,也是搜索引擎优化(SEO)中“页面间关联性”的重要组成部分。在安企CMS(AnQiCMS)这样功能强大的内容管理系统中,实现文档详情页的相关文档列表展示,操作起来既灵活又高效。

安企CMS为我们提供了 archiveList 这样的核心模板标签,它能胜任多种文档列表的调用需求,其中就包括了在文档详情页展示相关内容。我们可以根据不同的逻辑,如分类推荐、关键词推荐甚至是手动关联,来构建这些列表。

利用 archiveList 标签实现相关文档推荐

要实现在文档详情页显示相关文档列表,我们主要会用到 AnQiCMS 的 archiveList 模板标签。这个标签功能丰富,通过其 typelike 参数的组合,可以轻松实现多种推荐逻辑。通常,这些代码会放置在你的内容模型对应的 detail.html 模板文件中,例如,文章模型的详情页模板可能是 article/detail.html

让我们逐一探讨几种常见的实现方式:

1. 智能分类推荐(基于分类与相似度)

这是最常见也最基础的推荐方式,即在当前文档所属分类下,推荐其他相关文档。AnQiCMS 默认的 type="related" 模式就能很好地完成这项任务。它会智能地查找与当前文档在同一分类下的其他临近文档,提供自然的延伸阅读。

将以下代码片段放置在你的文档详情页模板中,例如在主内容区域的下方:

<div class="related-documents">
    <h3>相关推荐</h3>
    <ul>
    {% archiveList archives with type="related" limit="5" %}
        {% for item in archives %}
        <li>
            <a href="{{ item.Link }}" title="{{ item.Title }}">
                {% if item.Thumb %}
                <img src="{{ item.Thumb }}" alt="{{ item.Title }}" class="document-thumb">
                {% endif %}
                <span class="document-title">{{ item.Title }}</span>
                <span class="document-date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
            </a>
        </li>
        {% empty %}
        <li>暂无相关推荐文档。</li>
        {% endfor %}
    {% endarchiveList %}
    </ul>
</div>

在这段代码中:

  • {% archiveList archives with type="related" limit="5" %}:我们调用了 archiveList 标签,将获取到的文档列表赋值给 archives 变量。type="related" 告诉系统要获取与当前文档相关的列表,limit="5" 则限制了显示数量为 5 条。
  • {% for item in archives %}:这是一个循环结构,会遍历 archives 列表中的每一篇文档。
  • {{ item.Link }}{{ item.Title }}item 代表当前循环到的文档对象,我们可以通过 . 操作符访问它的各种属性,比如链接 (Link)、标题 (Title)。
  • {% if item.Thumb %}:这里判断文档是否有缩略图 (Thumb),如果有则显示。缩略图能让推荐列表更具吸引力。
  • {{ stampToDate(item.CreatedTime, "2006-01-02") }}stampToDate 是 AnQiCMS 提供的时间格式化函数,可以将时间戳转换为易读的日期格式。
  • {% empty %}:这是一个非常实用的标签,当 archives 列表为空(即没有找到相关文档)时,会显示 <li>暂无相关推荐文档。</li>,避免页面出现空白或错误。

通过这种方式,AnQiCMS 会根据当前文档的分类信息,自动筛选出最有可能被用户感兴趣的内容,大大降低了内容运营的维护成本。

2. 精准关键词推荐

如果你的网站内容非常依赖关键词来组织,或者希望推荐与当前文档核心关键词强相关的内容,那么可以利用 like="keywords" 参数。这要求你在发布文档时,对关键词进行精细化管理。

修改上述代码中的 archiveList 标签,加入 like="keywords"

<div class="keyword-related-documents">
    <h3>基于关键词推荐</h3>
    <ul>
    {% archiveList archives with type="related" like="keywords" limit="5" %}
        {% for item in archives %}
        <li>
            <a href="{{ item.Link }}" title="{{ item.Title }}">
                {% if item.Logo %} {# 也可以使用 Logo 字段作为图片 #}
                <img src="{{ item.Logo }}" alt="{{ item.Title }}" class="document-logo">
                {% endif %}
                <span class="document-title">{{ item.Title }}</span>
                <span class="document-description">{{ item.Description|truncatechars:50 }}</span> {# 截取部分描述 #}
            </a>
        </li>
        {% empty %}
        <li>暂无基于关键词的推荐文档。</li>
        {% endfor %}
    {% endarchiveList %}
    </ul>
</div>

这里我们使用了 like="keywords",系统会分析当前文档的关键词,并据此寻找其他包含相同关键词的文档。{{ item.Description|truncatechars:50 }} 则使用了过滤器 truncatechars 来截取文档描述的前 50 个字符,防止内容过长影响布局。

为了确保关键词推荐的有效性,你需要确保在后台“内容管理”->“发布文档”时,为每篇文档填写了相关且准确的关键词。关键词库管理功能 (help-plugin-rewrite.md 中提及的“关键词库管理”) 在这里会发挥重要作用,帮助你维护一套规范的关键词体系。

3. 手动精选关联推荐

在某些特定场景下,你可能希望完全由人工来决定哪些文档是彼此关联的,例如一个系列文章的下一篇,或者一个产品的配套资料。AnQiCMS 后台的文档编辑界面允许你手动设置“相关文档”。此时,like="relation" 参数就能派上用场。

archiveList 标签的 like 参数设置为 "relation"

<div class="manual-related-documents">
    <h3>手动精选推荐</h3>
    <ul>
    {% archiveList archives with type="related" like="relation" limit="5" %}
        {% for item in archives %}
        <li>
            <a href="{{ item.Link }}" title="{{ item.Title }}">
                <span class="document-title">{{ item.Title }}</span>
                <span class="document-views">阅读量: {{ item.Views }}</span>
            </a>
        </li>
        {% empty %}
        <li>暂无手动精选的推荐文档。</li>
        {% endfor %}
    {% endarchiveList %}
    </ul>
</div>

当你选择 like="relation" 时,系统只会显示那些在当前文档的后台编辑页面中,由运营者手动勾选或填写的相关文档。这种方式提供了最高程度的控制,确保推荐内容符合运营者的精准意图。

实施步骤总结

  1. 确定推荐策略: 首先根据你的内容类型和运营目标,选择最适合的推荐方式(分类智能推荐、关键词推荐或手动精选)。
  2. 定位模板文件: 进入 AnQiCMS 后台,导航至“模板设计”->“模板管理”。找到你需要添加相关文档列表的详情页模板文件。通常其路径类似 /template/{你的模板目录}/{内容模型表名}/detail.html
  3. 插入代码: 将上述相应的代码片段粘贴到模板文件中合适的位置,例如文档主内容区的下方或侧边栏区域。
  4. 保存并测试: 保存模板文件,并在前台访问相应的文档详情页,检查相关文档列表是否正确显示。如果发现排版问题,可以通过修改 CSS 样式进行调整。

通过灵活运用 archiveList 标签的不同参数,我们可以在 AnQiCMS 中轻松打造出多种形式的相关文档推荐功能,从而显著提升网站内容的互动性和用户的浏览深度。


常见问题 (FAQ)

1. 为什么我配置了相关文档列表,但页面上没有显示任何内容?

遇到这种情况,首先需要检查以下几个方面:

  • 文档数据是否充足: 确保你的网站中有足够多的文档,并且它们之间存在分类、关键词或手动关联。例如,如果你使用了 type="related" 进行分类推荐,但你的分类下只有一篇文档(即当前这篇),那么自然无法推荐出其他文档。
  • 参数设置是否正确: 仔细核对 archiveList 标签的参数,如 type="related"like="keywords"like="relation" 是否拼写无误。特别是 limit 参数,如果设置过小,可能会导致即便有相关文档也无法全部展示。
  • 内容完整性: 如果是 like="keywords" 模式,请检查当前文档是否已填充关键词,且有其他文档也包含这些关键词。如果是 like="relation" 模式,请确认在后台编辑当前文档时,是否手动关联了其他文档。
  • 模板缓存问题: AnQiCMS 具有