在安企CMS的生态中,多语言支持和多站点管理是其核心优势,旨在帮助企业和内容运营者轻松拓展全球市场。当您构建了一个多语言站点,并希望在前端提供语言切换功能时,自然会思考:“AnQiCMS的多语言站点列表是否会包含当前访问站点的自身信息?” 答案是肯定的,且这一设计在实际应用中带来了极大的便利和合理性。

理解AnQiCMS的多语言站点列表机制

AnQiCMS在处理多语言站点列表时,采用了非常直观且易于操作的方式。它提供了一个专门的模板标签——languages,用于在您的网站模板中动态地获取所有配置好的多语言站点信息。这个标签的设计初衷就是为了方便网站访问者在不同语言版本之间进行切换。

具体来说,当您使用 {% languages websites %}...{% endLanguages %} 这样的模板结构来调用多语言站点列表时,AnQiCMS会返回一个包含所有已设置多语言站点的数组对象(在这里我们将其命名为 websites)。值得注意的是,这个languages标签不接受任何参数。这意味着,无论当前用户访问的是哪个语言版本的站点,它都会无差别地列出所有可用的多语言站点,这其中自然也包括了用户当前正在浏览的站点本身。

多语言列表项中包含哪些信息?

每个在websites数组中的站点项(我们通常在for循环中称之为item)都携带着丰富的元数据,足以构建一个功能完善的语言切换器。这些信息包括:

  • 站点语言名称 (LanguageName):例如“中文”、“English”。
  • 语言代码 (Language):标准的ISO语言代码,如zh-CNen-US,这对于生成hreflang标签至关重要,有助于SEO。
  • 语言表情符号 (LanguageEmoji):如🇺🇸、🇨🇳,可以为语言切换按钮增添视觉趣味。
  • 语言图标 (LanguageIcon):如果配置了自定义的语言图标,这里会提供其链接。
  • 站点名称 (Name):该语言站点的具体名称。
  • 链接地址 (Link):最重要的信息之一,它提供了跳转到该语言站点的完整URL。
  • 备注 (Remark)是否Nofollow (Nofollow):这些提供了一些额外的信息和SEO控制选项。

这些字段的聚合,使得您可以在前端灵活地展示语言切换选项,无论是文本链接、带图标的按钮,还是结合hreflang标签进行搜索引擎优化,都能轻松实现。

为什么当前站点信息会包含在列表中?

AnQiCMS之所以将当前访问站点的自身信息也包含在多语言列表中,主要是基于以下几个方面的考量:

  1. 用户体验的完整性: 语言切换的目的是让用户能够看到所有可用的语言选项。如果当前语言版本不在此列,可能会让用户感到困惑,无法直观地知道自己处于哪个语言版本,也无法选择重新加载当前语言的页面。
  2. 代码实现的简洁性: languages标签不带参数的设计,简化了模板开发者的逻辑。它统一地返回所有数据,开发者无需编写额外的判断逻辑来排除当前站点,只需在模板中按需展示或添加特殊样式即可。
  3. SEO优化: AnQiCMS支持通过多语言列表生成hreflang标签。在HTML的<head>区段放置这些标签,可以明确告诉搜索引擎不同语言版本的页面对应关系,这对于国际化网站的SEO表现至关重要。hreflang标签的规范要求包含当前页面的自身hreflang信息,因此将当前站点包含在列表中是符合这一标准的。

简而言之,AnQiCMS的这一设计是经过深思熟虑的,它在提供丰富信息的同时,也兼顾了开发的简便性、用户体验的流畅性以及国际化网站的SEO需求。

与获取当前站点信息的区别

值得一提的是,languages标签提供的是“所有多语言站点”的列表。如果您只是想获取当前访问站点的自身系统信息(如网站名称、Logo、基础URL等),AnQiCMS提供了另一个名为system的标签。通过{% system with name="SiteName" %}这样的方式,您可以直接获取当前站点的特定属性,而无需遍历整个多语言站点列表。这两个标签各司其职,共同构成了AnQiCMS强大而灵活的内容管理体系。

常见问题 (FAQ)

  1. 问:AnQiCMS的多语言站点列表标签(languages)是否可以过滤掉当前站点,只显示其他语言选项? 答: languages标签本身不提供直接过滤当前站点的参数。它会返回所有配置的多语言站点信息,包括当前访问站点。如果您需要在前端界面上隐藏当前语言选项,或者给当前语言选项添加特殊样式,您可以通过在模板中使用if条件判断,根据item.Link与当前页面URL进行比较来手动实现。

  2. 问:在多语言切换时,如何确保页面URL能够正确地跳转到对应语言版本的当前页面内容? 答: languages标签返回的每个站点项都包含一个Link字段 (item.Link),这个链接地址就是该语言版本站点的基础URL。AnQiCMS会根据您的多语言配置和当前页面的路径,自动生成正确的跳转链接。例如,如果当前是/article/1,切换到英文站后通常也会尝试跳转到/en/article/1或类似结构,确保用户切换语言后能留在相同的内容上下文。此外,结合hreflang标签使用,也有助于搜索引擎理解不同语言版本之间的内容对应关系。

  3. 问:languages标签获取的站点列表,是否包含那些没有配置多语言功能的普通站点? 答: languages标签设计用于获取“多语言站点”的列表。根据AnQiCMS的文档描述,它会返回所有配置了多语言属性的站点信息。这意味着,那些仅仅作为独立站点运行,但未明确配置为多语言一部分的普通站点,通常不会被包含在这个列表中。