在网站内容运营中,我们经常会遇到需要展示不同内容之间关联性的场景,例如旅游产品中的“从A地到B地”、商品详情页的“产品A与产品B的对比”,或者服务方案中的“基础服务搭配增值服务”。安企CMS提供了两个非常实用的archiveList标签参数——combineId和combineFromId,它们能帮助我们以灵活且动态的方式,组合显示文档的标题和链接,从而提升内容的丰富性和用户体验。
深入理解组合文档
首先,我们需要明确“组合文档”的概念。在安企CMS中,组合文档并非指将两篇独立的文档合并成一篇,而是指在内容展示层面,通过特定的方式将它们关联起来,形成一个逻辑上的“组合体”。这种组合体在您的网站前端,无论是标题的呈现方式,还是点击后的链接地址,都能够动态地体现出来,为用户提供更精准、更具上下文关系的信息。
combineId参数:为列表项附加文档信息
combineId参数的作用,是在您通过archiveList标签获取文档列表时,为列表中的每一个主文档项附加一个特定的“组合文档”信息。想象一下,您的主文档列表是各个旅游目的地,而您希望为每个目的地都提供一个从“北京”出发的旅游方案。这时,您可以将“北京”这篇文档的ID,作为combineId的值。
例如,如果我们有一个包含多个旅游路线的主文档列表,并希望为这些路线都加上“出发城市”——假设北京的文档ID是2。在模板中,我们可以这样使用:
{% archiveList archives with type="list" categoryId="1" combineId="2" limit="10" %}
{% for item in archives %}
<a href="{{ item.Link }}">{{ item.Title }} 到 {{ combine.Title }} 的旅游线路</a>
{# 这里的 {{ item.Title }} 是主文档的标题,{{ combine.Title }} 则是combineId指定的文档(北京)的标题 #}
{% endfor %}
{% endarchiveList %}
在这段代码中,item代表了您archiveList查询出来的每个主文档(例如,“上海”、“广州”),而combine变量则代表了由combineId="2"参数指定的组合文档(“北京”)。通过{{ item.Title }} 到 {{ combine.Title }} 的旅游线路这样的组合,系统就能动态地生成“上海到北京的旅游线路”、“广州到北京的旅游线路”等标题。
combineFromId参数:前置组合文档信息
与combineId类似,combineFromId参数也用于组合文档,但它在逻辑上更侧重于将指定的文档作为“起始”或“前置”信息来显示。如果您的需求是从“北京”出发,去往不同的旅游目的地,那么“北京”就应该作为前置文档。
沿用上面的例子,如果“北京”的文档ID仍然是2,并且您希望标题显示为“从北京到上海的旅游线路”,可以这样调整:
{% archiveList archives with type="list" categoryId="1" combineFromId="2" limit="10" %}
{% for item in archives %}
<a href="{{ item.Link }}">{{ combine.Title }} 到 {{ item.Title }} 的旅游线路</a>
{# 这里的 {{ combine.Title }} 同样是combineFromId指定的文档(北京)的标题,而 {{ item.Title }} 仍是主文档的标题 #}
{% endfor %}
{% endarchiveList %}
这里的主要区别在于标题组合的顺序,combineFromId让{{ combine.Title }}在前,{{ item.Title }}在后,更符合“从哪里到哪里”的表达习惯。
动态生成标题与专属链接
这两个参数的精妙之处在于,它们不仅让您能灵活地构建组合标题,更重要的是,安企CMS还会自动为这些组合文档生成独特的伪静态链接。当用户点击这些动态生成的标题时,他们不会被导向到主文档或组合文档的单一页面,而是会访问到一个专为这个组合关系设计的URL。
例如,如果“上海”的文档ID是1,“北京”的文档ID是2,那么使用combineId="2"或combineFromId="2"后,生成的链接可能形如:
/module/1/c-2.html(表示主文档ID为1,组合文档ID为2)/tour/1/c-2.html(如果模块是tour)
这种链接结构清晰地表明了两个文档的关联性,并且对搜索引擎也更加友好,因为它为特定的组合内容创建了独立的入口。您甚至可以在一个组合URL中,组合多个文档ID(例如:/cpu/11/c-12-13-14.html),这为创建多文档对比或复杂套餐提供了可能。在相关的文档详情页(即/module/main_doc_id/c-combined_doc_id.html这样的页面),您也可以使用{{ combineArchive.文档字段 }}来调用被组合文档的详细信息。
实际应用场景举例
- 旅游路线规划:
- 主文档:各地城市景点介绍(上海、广州、深圳)
- 组合文档:出发地(北京、成都)
- 通过
combineFromId或combineId,动态生成“从北京到上海的旅游路线”、“从成都到广州的旅游路线”等,并指向专属组合页。
- 产品对比分析:
- 主文档:产品A、产品B、产品C的详细参数
- 组合文档:另一款用于对比的产品X
- 显示“产品A与产品X的对比”、“产品B与产品X的对比”等,让用户快速了解差异。
- 教育课程组合:
- 主文档:各类基础课程(数学、语文)
- 组合文档:特色辅导课程(奥数、写作)
- 生成“数学基础课搭配奥数辅导”、“语文基础课搭配写作技巧”等,展示套餐多样性。
通过combineId和combineFromId这两个参数,安企CMS极大地扩展了内容运营的想象空间,让您能够更加灵活地构建内容之间的深层联系,为用户提供更加个性化和场景化的内容体验。
常见问题 (FAQ)
1. 组合文档的链接格式是固定的吗?我能自定义吗?
组合文档的链接格式通常是/模块别名/主文档ID/c-组合文档ID.html。其中的模块别名和主文档ID是根据您的文档和伪静态规则生成的,而c-组合文档ID部分则是combineId或combineFromId参数带来的特色。虽然c-前缀是系统内置的,但您可以通过调整网站的伪静态规则来影响整个URL的结构,例如修改模块别名或ID的显示方式。
2. combineId和combineFromId这两个参数能同时在一个archiveList标签中使用吗?
combineId和combineFromId参数不能在同一个archiveList标签中同时使用。它们的作用都是指定一个额外的文档与