如何获取当前文章的相关文章列表(根据分类、关键词或手动关联)?

作为一名深谙AnQiCMS运作的网站运营人员,我深知高质量内容与用户体验对网站成功的关键作用。关联文章不仅能有效延长用户在站点的停留时间,提升页面浏览量,对于网站的内部链接优化(SEO)也大有裨益。AnQiCMS提供了灵活的方式来获取和展示这些关联内容,满足不同场景下的运营需求。

AnQiCMS中关联文章的机制概述

在AnQiCMS中,获取关联文章主要通过核心的archiveList模板标签实现。这个标签具备强大的筛选和排序能力,可以根据多种条件拉取文章列表,其中就包括专门用于关联文章的type="related"参数。通过调整archiveList的参数,我们可以轻松地实现基于分类、关键词或后台手动关联的文章推荐。这为运营人员提供了极大的自由度,以确保用户总能发现更多感兴趣的内容。

根据文章分类获取关联文章

最常见的关联文章方式是根据文章所属的分类进行推荐。当用户浏览一篇特定文章时,通常也对同一分类下的其他文章感兴趣。在AnQiCMS中,我们可以通过获取当前文章的分类ID,然后使用archiveList标签来检索该分类下的其他文章。

首先,我们需要在模板中获取当前文章的分类ID。这可以通过archiveDetail标签实现。一旦获取到分类ID,我们就可以将它作为archiveList标签的categoryId参数值。例如,如果当前文章的分类ID为123,我们可以设置categoryId="123"来拉取该分类下的文章。同时,为了避免重复显示当前文章,我们通常还需要在后台配置相关文章列表时进行适当的筛选。limit参数可以控制显示的文章数量,确保关联文章区域的简洁和高效。

根据关键词或标签获取关联文章

除了分类,关键词或标签也是连接文章内容的重要纽带。AnQiCMS允许我们根据当前文章的关键词来智能推荐相关内容。这种方式对于那些跨分类但主题相近的文章尤为有效。

要实现基于关键词的关联文章推荐,我们仍然使用archiveList标签,并设置type="related"。在此基础上,通过添加like="keywords"参数,AnQiCMS会自动解析当前文章的关键词或Tag,并据此搜索内容相近的其他文章。这意味着,如果多篇文章都使用了相同的核心关键词或Tag,它们便会相互关联起来,形成一个内容矩阵,极大地提高了内容的发现性。运营人员在发布文章时,精确设置关键词和Tag的重要性在此刻体现得淋漓尽致。

通过手动关联获取文章

在某些特殊情况下,网站运营人员可能需要更精细地控制关联文章的展示,例如,在推广特定内容、打造专题页面或引导用户阅读特定系列文章时。AnQiCMS为此提供了手动关联文章的功能。

当需要在后台明确指定某篇文章的关联文章时,可以利用archiveList标签配合type="related"like="relation"参数。这意味着,系统将不再自动根据分类或关键词计算关联性,而是只展示那些在后台编辑界面中,由运营人员手动指定为当前文章关联内容的文章。这个功能赋予了运营人员最高的自由度,能够精准地将用户导向预设的内容路径,实现更为复杂的运营策略。

在AnQiCMS模板中调用关联文章的实战示例

为了更直观地展示如何在AnQiCMS模板中获取和展示关联文章,这里提供一个综合示例。假设我们正在一个文章详情页面的底部,希望显示同一分类下、根据关键词推荐以及手动关联的文章。

{# 首先,获取当前文章的ID和分类ID #}
{% archiveDetail currentArticleId with name="Id" %}
{% archiveDetail currentCategoryId with name="CategoryId" %}

<div class="related-articles-section">
    <h3>更多相关文章</h3>

    {# 方式一:根据当前文章分类ID获取关联文章 #}
    <div class="related-by-category">
        <h4>同类推荐</h4>
        <ul>
            {% archiveList categoryRelatedArchives with categoryId=currentCategoryId type="list" limit="5" %}
                {% for item in categoryRelatedArchives %}
                    {# 排除当前文章本身 #}
                    {% if item.Id != currentArticleId %}
                        <li>
                            <a href="{{item.Link}}">{{item.Title}}</a>
                            <span>- {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                        </li>
                    {% endif %}
                {% empty %}
                    <li>暂无同分类文章。</li>
                {% endfor %}
            {% endarchiveList %}
        </ul>
    </div>

    {# 方式二:根据关键词智能推荐关联文章 #}
    <div class="related-by-keywords">
        <h4>关键词推荐</h4>
        <ul>
            {% archiveList keywordRelatedArchives with type="related" like="keywords" limit="5" %}
                {% for item in keywordRelatedArchives %}
                    {# 排除当前文章本身 #}
                    {% if item.Id != currentArticleId %}
                        <li>
                            <a href="{{item.Link}}">{{item.Title}}</a>
                            <span>- {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                        </li>
                    {% endif %}
                {% empty %}
                    <li>暂无关键词相关文章。</li>
                {% endfor %}
            {% endarchiveList %}
        </ul>
    </div>

    {# 方式三:手动关联的文章 #}
    <div class="related-by-manual">
        <h4>精选推荐</h4>
        <ul>
            {% archiveList manualRelatedArchives with type="related" like="relation" limit="5" %}
                {% for item in manualRelatedArchives %}
                    {# 排除当前文章本身 #}
                    {% if item.Id != currentArticleId %}
                        <li>
                            <a href="{{item.Link}}">{{item.Title}}</a>
                            <span>- {{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                        </li>
                    {% endif %}
                {% empty %}
                    <li>暂无手动关联文章。</li>
                {% endfor %}
            {% endarchiveList %}
        </ul>
    </div>
</div>

在这个示例中,我们首先获取了当前文章的IdCategoryId。然后,分别使用了三次archiveList标签,以不同的typelike参数组合,来拉取不同逻辑下的关联文章。每次循环中,我们都通过{% if item.Id != currentArticleId %}确保不重复显示当前正在阅读的文章。{% empty %}标签则优雅地处理了没有找到关联文章的情况,提升了用户体验。

提升关联文章效果的运营建议

作为一名运营人员,仅仅实现关联文章的调用是不够的,我们还需要思考如何最大化其效果。

首先,关联文章的展示位置至关重要。通常,它们会出现在文章内容下方、侧边栏或文章末尾,确保用户在完成当前内容阅读后能够自然地发现更多相关信息。其次,展示数量应适中,通常建议显示3到8篇,避免信息过载或信息量不足。标题和缩略图的吸引力也直接影响点击率,因此确保关联文章有高质量的封面图和简洁明了的标题。

此外,定期回顾和优化关键词与标签,是提升关键词推荐准确性的长效机制。对于手动关联,应结合数据分析,将表现**的内容或用户转化路径中的关键内容进行关联,以达到**的运营效果。通过AnQiCMS提供的这些灵活工具,结合精细化的运营策略,关联文章将成为您网站内容生态中不可或缺的一部分。


常见问题 (FAQ)

问:为什么我的关联文章没有显示,或者显示不准确? 答:关联文章不显示或不准确可能有几个原因。首先,请检查您的模板代码是否正确使用了archiveList标签及其参数,特别是categoryIdtypelike等。其次,确认当前文章是否存在关联内容,例如,同一分类下的其他文章、是否正确设置了关键词/标签,或者是否在后台为该文章手动关联了其他内容。此外,如果您使用的是like="keywords"模式,请确保文章的关键词设置得足够精准和丰富。如果问题依然存在,建议检查AnQiCMS的后台日志,看是否有相关的错误信息。

问:我可以在一个页面上同时显示多种类型的关联文章吗?例如,一部分是同分类的,一部分是根据关键词的? 答:完全可以。如文章实战示例所示,您可以通过多次调用archiveList标签,每次设置不同的参数(例如,一次设置categoryId,另一次设置type="related"like="keywords"),来分别获取并展示不同逻辑下的关联文章列表。这种组合使用的方式可以为用户提供更多样化的推荐内容,进一步提升内容发现的效率和用户的满意度。

问:AnQiCMS是否会自动排除当前正在阅读的文章,避免其在关联文章列表中重复出现? 答:AnQiCMS的archiveList标签在获取相关内容时,并不会自动排除当前文章。作为运营人员,您需要在模板代码中手动添加逻辑来排除当前文章。这通常通过在for循环内添加条件判断实现,例如{% if item.Id != currentArticleId %},其中currentArticleId是您通过archiveDetail标签获取到的当前文章ID。这样的处理能够确保用户体验的流畅性,避免不必要的重复。