如何在安企CMS模板中调用后台自定义的Json-LD结构化数据并显示?

📅 👁️ 69

在网站内容日益丰富的今天,如何让搜索引擎更准确地理解网页内容,并以更友好的方式展示给用户,成为了网站运营的关键一环。结构化数据(通常采用Json-LD格式)正是实现这一目标的重要工具。通过在页面中嵌入Json-LD代码,我们可以为搜索引擎提供文章、产品、评论等各种内容的标准化信息,从而有机会获得更丰富的搜索结果展示,也就是我们常说的“富摘要”或“富结果”。

AnQiCMS作为一个专注于企业级内容管理的系统,深知SEO优化的重要性。它在设计之初就考虑到了结构化数据的应用,不仅内置了自动生成基础Json-LD的功能,更提供了灵活的方式让用户可以根据实际需求,在模板中自定义和调用后台配置的结构化数据,确保您的网站在搜索引擎中拥有**表现。

认识AnQiCMS的Json-LD处理机制

AnQiCMS在处理Json-LD结构化数据方面,提供了一个非常贴心的机制。当您在后台开启了结构化数据功能后,系统会默认在您网站的页面头部自动生成一份基础的Json-LD代码。这份代码通常会包含页面类型、URL、标题、描述等基本信息,这对于大多数网站来说已经足够应对日常的SEO需求。

然而,在某些场景下,您可能需要更精细地控制Json-LD的内容,比如为特定的文章类型定义更具体的Schema属性,或者补充一些AnQiCMS默认未涵盖的字段。AnQiCMS充分考虑了这种高级定制的需求,允许您在模板中手动介入,调用并扩展这些结构化数据。

在AnQiCMS模板中调用和自定义Json-LD

要在AnQiCMS模板中自定义Json-LD结构化数据,我们需要利用到一个专用的模板标签:{% jsonLd %}。这个标签的作用是作为一个容器,您可以在它的开始和结束标签之间,编写您自己的Json-LD代码。AnQiCMS的智能之处在于,它会将您自定义的Json-LD与系统默认生成的Json-LD进行合并。如果两者之间存在字段冲突,您自定义的字段将会覆盖系统默认的字段,从而让您拥有最终的控制权。

让我们通过一个简单的例子来理解这个过程。假设您想为某个页面添加一个自定义的作者信息,并指定一个特定的图片作为Json-LD的一部分:

{%- jsonLd -%}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "name": "自定义页面名称,覆盖默认",
  "description": "这是自定义的页面描述,会覆盖默认的页面描述。",
  "author": {
    "@type": "Organization",
    "name": "AnQiCMS运营团队"
  },
  "image": [
    "https://您的网站域名/static/images/custom-logo.png"
  ]
}
</script>
{%- endjsonLd -%}

在这段代码中,{%- jsonLd -%}{%- endjsonLd -%} 包裹了我们自定义的 <script type="application/ld+json"> 标签。Json-LD代码本身遵循JSON语法,所以键值对、数组和对象都需要严格按照JSON格式书写。其中的 namedescription 字段会覆盖系统默认生成的值,而 authorimage 字段则会作为新增或更新的信息合并到最终的Json-LD数据中。使用 {%--%} 可以在标签两侧移除空白符,让生成的HTML更加紧凑。

结合实际内容进行动态调用

Json-LD的强大之处在于能够动态地反映页面内容的具体信息。在AnQiCMS中,我们可以结合其丰富的模板标签,将后台输入的文档标题、图片、发布时间等动态内容引入到Json-LD结构中,构建出更准确、更具有语义化的数据。

例如,我们希望在文章详情页中,为每篇文章生成一个符合 Article 类型的Json-LD数据,其中包含文章的标题、缩略图、发布时间、作者、描述等信息。我们可以这样实现:

{%- jsonLd -%}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "{{- archive.Title -}}", {# 调用当前文章标题 #}
  "image": [
    "{{- archive.Logo -}}" {# 调用当前文章封面首图 #}
  ],
  "datePublished": "{{- stampToDate(archive.CreatedTime, "2006-01-02T15:04:05Z") -}}", {# 格式化文章创建时间为ISO 8601格式 #}
  "dateModified": "{{- stampToDate(archive.UpdatedTime, "2006-01-02T15:04:05Z") -}}", {# 格式化文章更新时间 #}
  "author": {
    "@type": "Person",
    "name": "{%- system with name='SiteName' -%}" {# 调用后台设置的网站名称作为作者 #}
  },
  "publisher": {
    "@type": "Organization",
    "name": "{%- system with name='SiteName' -%}", {# 调用后台设置的网站名称作为发布者 #}
    "logo": {
      "@type": "ImageObject",
      "url": "{%- system with name='SiteLogo' -%}" {# 调用后台设置的网站Logo作为发布者Logo #}
    }
  },
  "description": "{{- archive.Description | truncatechars:200 -}}", {# 调用文章简介,并截取前200字 #}
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "{{- archive.Link -}}" {# 调用文章链接 #}
  }
}
</script>
{%- endjsonLd -%}

在这段代码中:

  • 我们使用了 archive.Titlearchive.Logoarchive.Descriptionarchive.Link 直接获取当前页面的文章标题、封面图、描述和链接。
  • stampToDate 过滤器将Unix时间戳格式的 archive.CreatedTimearchive.UpdatedTime 转换成了Json-LD所需的ISO 8601格式("2006-01-02T15:04:05Z" 是Go语言中用于格式化时间的一种特殊模板

相关文章

`archiveFilters`标签如何实现复杂参数筛选条件在前端的动态显示?

在网站内容运营中,为用户提供灵活、高效的筛选功能是提升用户体验、帮助用户快速定位所需信息的重要一环。安企CMS(AnQiCMS)深知这一点,通过其强大的模板标签系统,特别是`archiveFilters`标签,让前端动态显示复杂参数筛选条件变得轻而易举。 ### 核心功能与实现原理 `archiveFilters`标签的核心作用是根据内容模型的自定义字段

2025-11-09

安企CMS如何实现文章列表的按浏览量(views desc)排序显示?

在内容运营中,如何让网站上的热门文章迅速脱颖而出,吸引更多访问者的目光?这不仅能有效提升用户体验,也是优化内容策略、引导流量的关键。对于使用安企CMS(AnQiCMS)的用户而言,实现文章列表按浏览量排序显示是一项非常实用且操作简便的功能。安企CMS强大的模板标签系统,让您可以轻松地将网站最受欢迎的内容呈现在用户面前。 ### 核心功能揭秘:利用 `archiveList`

2025-11-09

如何在安企CMS中显示多语言站点的切换选项和hreflang标签?

在全球化日益盛行的今天,为网站提供多语言支持已成为拓展市场、服务不同地区用户的基本要求。安企CMS(AnQiCMS)深知这一需求,内置了强大的多语言功能,让网站管理者能够轻松实现内容的国际化。本文将详细探讨如何在AnQiCMS中有效地显示多语言站点的切换选项,并正确地设置`hreflang`标签,以优化搜索引擎的国际化识别。 ### 理解AnQiCMS的多语言能力 AnQiCMS作为一款高效

2025-11-09

安企CMS的`breadcrumb`标签如何生成并显示灵活的面包屑导航?

在构建网站时,一个清晰、直观的导航系统对于用户体验和搜索引擎优化(SEO)都至关重要。面包屑导航(Breadcrumb Navigation)正是这样一种能够显著提升网站可用性的工具,它能清晰地展示用户在网站中的当前位置,并提供方便返回上一级页面的链接。安企CMS深知这一点,并为此提供了功能强大且灵活易用的`breadcrumb`标签。 ###

2025-11-09

安企CMS如何处理和显示内容中的外部链接,如添加`rel="nofollow"`属性?

在网站运营中,外部链接的管理是内容策略和搜索引擎优化(SEO)不可或缺的一部分。尤其像 `rel="nofollow"` 这样的属性,它告诉搜索引擎不要将链接权重传递给被链接的页面,这对于管理网站的链接健康度和避免潜在的SEO风险至关重要。安企CMS(AnQiCMS)提供了多种方式来处理和显示内容中的外部链接,包括自动添加 `rel="nofollow"` 属性

2025-11-09

网站开启Webp图片格式后,前端页面如何正确显示和加载图片?

在网站运营中,图片加载速度对用户体验和搜索引擎优化(SEO)至关重要。WebP作为一种现代图片格式,以其卓越的压缩性能在保持图片质量的同时大幅减小文件体积,从而显著提升网站加载速度。安企CMS(AnQiCMS)深知这一点,并在其系统中内置了对WebP图片格式的支持,方便用户轻松开启并受益。 然而,开启WebP功能后,许多用户可能会困惑:前端页面如何才能正确地显示和加载这些WebP图片

2025-11-09

安企CMS的模板文件应遵循哪些基本约定才能正确显示内容结构?

在安企CMS中,模板文件是网站内容得以呈现的基础。它不仅仅是简单的HTML文件,更是一套遵循特定约定和规则的“蓝图”,只有准确地遵循这些约定,系统才能正确地解析、渲染并展示您的网站内容结构。理解这些基本约定,能够帮助您更高效地定制和管理您的网站,确保内容以您期望的方式呈现在访问者面前。 ### 模板文件的存放位置与基础格式 首先,安企CMS对模板文件的存放位置有着明确的要求

2025-11-09

如何在安企CMS中调试模板显示问题,如使用`dump`过滤器打印变量?

安企CMS模板调试:巧用`dump`过滤器轻松定位显示问题 在使用安企CMS搭建网站时,我们有时会遇到模板内容没有按预期显示的情况。比如,你期望在某个位置显示文章标题,结果却是一片空白;或者列表数据不完整,某个自定义字段的内容始终未能正确呈现。这些问题往往令人困惑,因为在后台明明设置了数据,却不知道为什么前端不显示。 面对这类问题,如果能“看透”模板中变量的真实内容,无疑能大大提高解决效率

2025-11-09