安企CMS模板中如何显示相关文档列表?

作为一名深耕安企CMS多年的网站运营人员,我深知在内容展示方面,如何有效地引导用户发现更多感兴趣的内容,对于提升用户粘性和网站深度访问至关重要。其中,“相关文档列表”无疑是实现这一目标的核心功能之一。它不仅能帮助用户便捷地探索更多相关主题,也对网站的内部链接结构和SEO优化有着积极的影响。

安企CMS在模板设计上提供了强大而灵活的标签系统,使得在文档详情页展示相关文档列表成为一项相对直接的操作。通过利用内置的archiveList标签,并配合特定的参数,我们可以轻松地实现这一功能。

理解安企CMS的“相关文档”机制

安企CMS将“相关文档”定义为与当前正在浏览的文档在某些方面具有关联性的内容。这种关联性可以基于文档的分类、关键词、或在后台进行的人工关联。值得注意的是,相关文档列表通常仅适用于文档详情页面,因为其逻辑是围绕当前文档展开的。系统会根据当前文档的ID,尝试查找与其同分类、或者共享关键词的临近文档。

核心标签:archiveListtype="related"

在安企CMS的模板系统中,用于获取相关文档列表的主要标签是archiveList。这个标签非常多功能,不仅可以用于显示常规的文档列表或分页列表,通过设定type="related"参数,它就能智能地提取与当前文档相关的文档。

archiveList标签在设置为type="related"时,还支持一个关键的like参数,用于进一步细化相关文档的匹配逻辑。

  • 默认关联:当不指定like参数时,系统会根据当前文档的ID,自动获取其同分类下的临近文档。这是一种基于分类和时间/ID顺序的自然关联。
  • 基于关键词关联(like="keywords":如果希望相关文档的推荐更侧重于内容主题的相似性,可以设置like="keywords"。在这种模式下,系统会提取当前文档的第一个关键词,并以此为依据去查找包含相同关键词的其他文档作为相关内容。这对于内容主题明确的网站非常有用。
  • 基于后台人工关联(like="relation":对于一些需要精细控制相关推荐的场景,例如电商网站的产品关联推荐,运营人员可能希望手动指定哪些文档是相关的。通过在后台编辑文档时设置“相关文档”字段,并在模板中使用like="relation",可以确保只显示这些明确指定的文档。

除了typelike参数外,archiveList标签还支持limit(控制显示数量)、moduleId(指定内容模型,如文章模型或产品模型)、siteId(多站点环境下指定站点)等参数,以满足更细致的调用需求。

实际操作:如何在模板中展示相关文档列表

要在安企CMS的模板中展示相关文档列表,我们需要在文档详情页面的模板文件(例如{模型table}/detail.htmlarchive/detail.html)中添加相应的标签代码。

以下是一个通用的代码示例,演示如何获取并显示默认的相关文档列表:

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

在这个示例中:

  • archiveList archives with type="related" limit="5":我们调用了archiveList标签,将其类型设置为related,并限制最多显示5篇相关文档。结果集被命名为archives
  • {% for item in archives %}:遍历archives数组,item变量代表每一篇相关文档。
  • {{item.Link}}:输出相关文档的链接。
  • {{item.Thumb}}:输出相关文档的缩略图。
  • {{item.Title}}:输出相关文档的标题。
  • {{stampToDate(item.CreatedTime, "2006-01-02")}}:格式化输出文档的创建时间。
  • {% empty %}...{% endfor %}:如果archives为空(即没有找到相关文档),则显示“暂无相关文档”的提示。

如果需要基于关键词进行关联,可以这样修改archiveList标签:

<div class="related-articles-by-keywords">
    <h3>相关主题文档</h3>
    <ul>
        {% archiveList archives with type="related" like="keywords" limit="5" %}
            {% for item in archives %}
            <li>
                <a href="{{item.Link}}">
                    <h4>{{item.Title}}</h4>
                </a>
            </li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

若要展示后台人工指定的相关文档,则使用like="relation"

<div class="explicitly-related-documents">
    <h3>运营推荐文档</h3>
    <ul>
        {% archiveList archives with type="related" like="relation" limit="5" %}
            {% for item in archives %}
            <li>
                <a href="{{item.Link}}">
                    <h4>{{item.Title}}</h4>
                </a>
            </li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

相关内容展示的优化与考虑

在实际运营中,仅仅展示相关文档是不够的,还需要考虑如何优化其展示效果,以更好地服务用户和网站目标。

  • 增强相关性:除了系统提供的like参数,还可以通过优化文档的分类和关键词设置,确保内容的准确性和关联度。对于一些核心内容,可以考虑人工在后台指定相关文档,以提供更精准的推荐。
  • 用户体验与界面设计:相关文档列表的布局和样式设计至关重要。可以考虑为每篇文档展示缩略图、简要描述和发布时间,以帮助用户快速判断其是否感兴趣。确保列表易于阅读,且不会分散用户对主要内容的注意力。
  • 加载性能limit参数可以有效控制相关文档的数量,避免一次性加载过多数据,从而优化页面加载速度。对于高流量网站,合理设置limit至关重要。
  • 放置位置:相关文档列表通常放置在文档内容的末尾,或侧边栏,这样既能承接用户阅读完主内容后的兴趣,又不会打断他们的阅读流程。

通过上述方法,我们可以利用安企CMS强大的模板标签系统,为网站创建功能完善、用户友好的相关文档推荐模块,从而提升网站的内容价值和用户体验。


常见问题解答 (FAQ)

为什么我的文档详情页没有显示任何相关文档?

出现这种情况可能有几个原因。首先,请确认您是否在文档详情页面使用了archiveList标签并设置type="related"。其次,检查当前文档所属的分类下是否有其他文档,如果文档数量过少,系统可能无法找到足够的相关内容。如果您使用了like="keywords",请确保当前文档至少有一个关键词,并且其他文档也共享该关键词。如果使用了like="relation",则需要检查是否在后台手动为当前文档关联了其他文档。最后,limit参数设置过低也可能导致没有内容显示,可以尝试将其设置得更高一些。

如何让相关文档列表基于共享的标签(Tag)来显示?

安企CMS的archiveList标签在type="related"模式下不直接支持通过Tag进行关联。但是,您可以通过以下两种方法实现类似效果:

  1. 间接方法:利用关键词。在后台为文档设置Tag时,可以将部分Tag也作为文档的关键词,然后使用{% archiveList archives with type="related" like="keywords" limit="N" %}标签,系统会根据关键词进行匹配。
  2. 组合标签:tagList + archiveList。您可以首先使用tagList标签获取当前文档的所有标签,然后遍历这些标签,并为每个标签使用tagDataList标签来显示该标签下的文档。这种方法会显示多个“按标签分组”的相关文档列表,可能需要一些额外的逻辑来去重或合并。

我可以自定义“相关文档”的匹配规则,而不仅仅是依靠分类或关键词吗?

archiveList标签提供的type="related"配合like="keywords"like="relation"参数,已经提供了较为灵活的匹配规则。like="relation"允许您在后台手动指定相关文档,提供了最高程度的定制性。如果这些内置选项仍无法满足您的特殊需求,例如基于文档内容模型中的特定自定义字段进行复杂匹配,那可能需要深入到安企CMS的后端逻辑进行二次开发,或者在模板层通过更复杂的逻辑(如先获取当前文档的某个自定义字段值,再用archiveListq参数去搜索匹配该值的文档,但这会增加前端模板的复杂度)。通常情况下,关键词和人工关联已经能满足大部分运营需求。