在网站运营中,如何让访问者更快地找到他们感兴趣的内容,或是在浏览完一篇内容后,能无缝地发现更多相关信息,是提升用户体验和网站粘性的关键。安企CMS(AnQiCMS)提供了强大而灵活的模板标签,能够帮助我们轻松实现在文章列表页面显示相关文档或搜索结果,从而构建一个更加智能和互动的网站。
巧妙运用内容列表标签,呈现动态信息
安企CMS的核心优势之一在于其高度可定制的模板系统。对于文章(或产品)列表页面,我们主要会用到一个功能强大的模板标签:archiveList。这个标签是构建内容列表的基础,通过搭配不同的参数,它可以实现多种内容呈现方式,包括常规列表、分页列表、相关文档列表,甚至是搜索结果。
理解archiveList标签的type参数至关重要。它决定了列表的类型:
type="list":用于显示固定数量的内容列表,通常用于侧边栏推荐、首页最新文章等场景。type="page":用于构建带有分页功能的内容列表,适用于文章归档页、分类页或搜索结果页。type="related":专门用于显示与当前文章相关的内容。
接下来,我们将围绕这三种类型,探讨如何在文章列表页面巧妙地呈现相关文档和搜索结果。
在文章列表页面展示“相关文档”
当用户正在阅读一篇具体文章时,我们通常希望向他们推荐一些主题相近、内容互补的文章,这就是“相关文档”的作用。安企CMS能够根据多种逻辑智能地找出相关内容。
实现这一功能,你需要先确保你的模板文件是文章详情页的模板(通常是archive/detail.html或自定义的文档模板)。在这个页面中,首先需要获取当前文档的一些信息,例如它的ID或关键词,这样安企CMS才能知道“与什么相关”。这可以通过archiveDetail标签轻松实现。
{# 假设这是文章详情页的模板,我们首先获取当前文档的ID和关键词 #}
{% archiveDetail currentArchive with name="Id" %} {# 获取当前文档ID #}
{% archiveDetail currentKeywords with name="Keywords" %} {# 获取当前文档的关键词 #}
<div class="related-articles-section">
<h3>相关推荐</h3>
<ul class="related-list">
{# 使用 archiveList 标签,并设置 type="related" 来获取相关文档 #}
{# limit="5" 表示显示5篇相关文档 #}
{# like="keywords" 会根据当前文档的关键词来查找相关文档。
如果希望根据后台手动设置的相关文档,可以使用 like="relation" #}
{% archiveList relatedArchives with type="related" limit="5" like="keywords" %}
{% for item in relatedArchives %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
{% if item.Thumb %}
<img src="{{ item.Thumb }}" alt="{{ item.Title }}" class="related-thumbnail" />
{% endif %}
<span class="related-title">{{ item.Title }}</span>
</a>
</li>
{% empty %}
<li>暂无相关内容推荐。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
在这段代码中,archiveList标签的type="related"参数是实现相关文档的关键。安企CMS会默认根据当前文档的分类、模型或后台设置,智能推荐内容。通过like="keywords",它会优先匹配与当前文章关键词相近的其他文章;而like="relation"则会展示你在后台编辑文章时手动添加的“相关文档”。limit参数则控制了显示的数量。
构建文章列表中的“搜索结果”呈现
提供站内搜索功能是提高用户自主导航能力的重要方式。用户输入关键词后,我们希望在一个清晰的列表中呈现相关结果。这通常会在一个专门的搜索结果页面(例如/search)上实现,但也可以集成到通用的文章列表模板中。
首先,你需要一个搜索表单,让用户可以输入关键词:
<form action="/search" method="get" class="website-search-form">
<input type="text" name="q" placeholder="输入你想搜索的内容..." value="{{ urlParams.q }}" class="search-input" />
<button type="submit" class="search-button">搜索</button>
</form>
这段表单会提交到/search路径,并带上一个名为q的参数,其值就是用户输入的关键词。{{ urlParams.q }}会保留用户上次搜索的关键词,提升用户体验。
接下来,在你的搜索结果页面模板(通常是search/index.html,或者任何你指定为搜索结果的页面)中,你可以使用archiveList标签来动态加载搜索结果:
”`twig
{# 显示用户当前的搜索关键词 #}
<h3>搜索结果:<span>“{{ urlParams.q }}”</span></h3>
<ul class="search-results-list">
{# 使用 archiveList 标签,设置 type="page" 实现分页,limit="10" 每页显示10条 #}
{# q 参数会被安企CMS自动从URL中读取,无需手动传递 #}
{% archiveList searchResults with type="page" limit="10" %}
{% for item in searchResults %}
<li>
<a href="{{ item.Link }}" title="{{ item