AnQiCMS多站点数据调用:轻松实现内容共享与联动展示

AnQiCMS作为一款专为中小企业和内容运营团队打造的内容管理系统,其多站点管理功能是其核心亮点之一。在实际运营中,我们经常会遇到这样的需求:主站需要展示各个子站点的最新产品,或者所有子站点都需要统一显示公司总部的联系方式,再或者多个内容平台希望聚合展示某一个特定主题的文章。在这种情况下,如何高效地调用并显示特定站点的数据就显得尤为重要。

幸运的是,AnQiCMS为我们提供了强大且灵活的解决方案——通过模板标签中的siteId参数,可以轻松实现跨站点的数据调用和展示,极大地提升了内容运营的效率和灵活性。

核心机制:理解 siteId 参数

在AnQiCMS中,每个通过后台“多站点管理”功能创建的独立站点都会拥有一个唯一的数字ID。这个ID就是我们进行跨站点数据调用的“魔法钥匙”。

当我们在模板中使用AnQiCMS的各类模板标签(如获取文章列表、分类详情、系统设置等)时,这些标签默认会获取当前访问站点的数据。然而,一旦我们希望获取非当前站点的数据,只需在相应的模板标签中加入siteId参数,并指定目标站点的ID即可。

例如: 如果你的主站ID是1,而你有一个产品展示站点ID是2。在产品展示站点的模板中,你想显示主站点的最新新闻,你就可以通过指定siteId="1"来获取主站点的数据。

要查询各个站点的具体siteId,你可以登录AnQiCMS后台,进入“多站点管理”页面。在这里,每个已创建的站点都会清晰地列出其对应的ID,方便你随时查阅和使用。

实际操作:通过模板标签调用数据

AnQiCMS的多数核心模板标签都支持siteId参数,这包括:

  • 文档相关标签: archiveList (文档列表), archiveDetail (文档详情)
  • 分类相关标签: categoryList (分类列表), categoryDetail (分类详情)
  • 页面相关标签: pageList (单页列表), pageDetail (单页详情)
  • 通用信息标签: system (系统设置), contact (联系方式), tdk (TDK信息), navList (导航列表), bannerList (首页Banner), linkList (友情链接)
  • Tag标签: tagList (Tag列表), tagDetail (Tag详情), tagDataList (Tag文档列表)
  • 留言表单: guestbook (留言表单)

下面,我们通过几个常见的场景来演示如何使用siteId参数:

1. 调用其他站点的文章或产品列表 (archiveList)

假设你的主站(ID为1)发布了最新的行业资讯,而你的子站点(ID为2)想在侧边栏展示这些资讯,以增加内容丰富度。你可以在子站点的模板中这样编写:

{# 假设主站ID为1,调用主站ID为1的最新5篇文章 #}
{% archiveList archives with type="list" siteId="1" limit="5" %}
    {% for item in archives %}
    <li>
        <a href="{{ item.Link }}">{{ item.Title }}</a>
        <span>{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
    </li>
    {% endfor %}
{% else %}
    <li>暂无最新资讯</li>
{% endarchiveList %}

这段代码会从ID为1的站点中获取最新的5篇文章标题和链接,并在当前子站点(ID为2)上显示。

2. 获取特定站点的联系方式 (contact)

如果你的公司有多个区域性站点,但对外统一使用总部的联系电话。假设总部站点的ID是1,你希望所有子站点都能显示这个统一的电话。

{# 假设总部站点ID为1,调用其联系电话 #}
<p>联系电话:{% contact with name="Cellphone" siteId="1" %}</p>
{# 也可以调用其他信息,例如联系人 #}
<p>联系人:{% contact with name="UserName" siteId="1" %}</p>

这样,无论哪个区域站点,都会显示来自ID为1的总部站点的联系电话和联系人,确保了信息的一致性。

3. 显示共享的导航菜单 (navList)

你可能希望所有子站点都共享一套通用的页脚导航菜单,这个菜单在主站(ID为1)中进行统一管理。

{# 假设主站ID为1,调用其默认导航列表 #}
{% navList navs with siteId="1" %}
<ul>
    {% for item in navs %}
    <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
    {% endfor %}
</ul>
{% endnavList %}

通过这种方式,一旦主站的页脚导航发生更新,所有调用了此标签的子站点都会同步更新,无需逐个修改。

4. 引入通用系统配置 (system)

某些全局性的配置,如网站备案号(SiteIcp)或统一的版权信息(SiteCopyright),可能需要在所有站点保持一致。

{# 假设主站ID为1,调用其备案号和版权信息 #}
<p>备案号:{% system with name="SiteIcp" siteId="1" %}</p>
<p>版权信息:{% system with name="SiteCopyright" siteId="1" %}</p>

这样可以确保品牌信息和法律声明在所有站点都保持统一,避免重复配置和潜在的错误。

应用场景与价值

通过siteId参数实现跨站点数据调用,为AnQiCMS用户带来了显著的价值:

  • 提升效率: 避免了在多个站点之间重复创建和管理相同的内容,特别是公共信息如联系方式、导航、公告等。
  • 保持一致性: 确保了共享内容在所有相关站点上的统一性,有助于强化品牌形象和信息传递的准确性。
  • 内容聚合与联动: 轻松实现内容从一个“中心站点”向其他“分发站点”的联动,或将多个站点的内容聚合到某个展示页面。
  • 简化维护: 当共享内容需要更新时,只需在一个站点(内容源站点)进行修改,其他调用站点会自动同步,大大降低了维护成本。

注意事项

在使用siteId参数进行跨站点数据调用时,有几个小点需要留意:

  1. 明确目标ID: 确保你准确知道你想要调用数据的目标站点的ID。在后台“多站点管理”中核对是最好的方法。
  2. 数据类型匹配: 确保你调用的数据类型(例如文章列表、联系方式)在目标站点中是存在的,否则可能会返回空数据。
  3. 模板输出结构: 跨站调用只会提供数据,如何美观地显示这些数据依然需要你在模板中进行布局和样式设计。

总结

AnQiCMS的siteId参数是其多站点管理功能