如何使用JSON-LD创建SiteNavigationElement?

4
我正在尝试使用Schema.org中的SiteNavigationElement类型。HTML是动态生成的,所以我不能编辑它。因此,JSON-LD是我的唯一选择。
我希望所有导航元素都在一个单独的SiteNavigationElement对象下。
我已经附上了期望的输出结果截图:

@unor 所有相关链接使用 HTML 创建模式。我已经使用 JSON-LD 创建了其他元素,但只有在 SIteNavigationElement 中遇到问题。 - krishnaisdinesh
你没有描述在实现JSON-LD时遇到的问题。---我链接了相关的问题,因为这些问题涉及到以不正确的方式使用SiteNavigationElement; 对于这个问题,使用哪种语法(Microdata、RDFa、JSON-LD)并不重要,错误出现在更高的层次。---我撤销了你的编辑,因为你的问题似乎与Microdata或Rich Snippets无关。 - unor
2个回答

2
Schema.org的SiteNavigationElement类型不能用于导航链接,只能用于整个导航。
因此,url将是导航的URL(通常没有),而name将是导航的名称(例如,“导航”或“主菜单”等)。
类型SiteNavigationElement(以及其父级WebPageElement类型和其他子类型)对于典型的网页并不真正有用。

感谢您的回复。根据要求,我必须创建此结构,并且可以通过编辑静态HTML来实现,但在我的情况下,我不能这样做。这些链接是页脚链接。 'Header'表示页脚列标题名称和名称,URL表示它们各自的子项。 - krishnaisdinesh
你明白我的回答了吗?也就是说,你打算使用 SiteNavigationElement 的方式不正确,但你还是想这样做?-- 如果是这样的话,你需要在问题中提供更多细节,说明你的问题具体在哪里。但请注意,消费者(如 Google)很可能无法正确理解你的数据。 - unor
我明白你的意思。假设我在同一页上有四个专业服务,并且必须使用json-ld来形成模式。我已经创建了它,并且已经通过Google验证。问题是,我需要将所有服务放在单个专业服务对象中,以@professionalDescripton ->名称、描述对的形式存在。但我得到了不同的专业服务对象。可以在此处检查https://jpst.it/JKZF json代码。https://search.google.com/structured-data/testing-tool/ - krishnaisdinesh
@krishnaisdinesh:我不确定我完全理解你想要实现什么。如果您有四个专业服务,则必须使用四个不同的ProfessionalService对象。使用JSON-LD的@graph,您可以在同一个script元素中提供这4个对象(示例),如果这是您想要的。 (顺便说一句,注意ProfessionalService已被弃用。) - unor

2
以下是如何完成此操作的步骤:
<script type="application/ld+json">
  {
  "@context": "https://schema.org",
  "@graph":
    [
      {
        "@context": "https://schema.org",
        "@type":"SiteNavigationElement",
        "@id":"#table-of-contents",
        "name": "Section 1",
        "url": "https://www.example.com/page#toc-1"
      },
      {
        "@context": "https://schema.org",
        "@type":"SiteNavigationElement",
        "@id":"#table-of-contents",
        "name": "Section 2",
        "url": "https://www.example.com/page#toc-2"
      },
      {
        "@context": "https://schema.org",
        "@type":"SiteNavigationElement",
        "@id":"#table-of-contents",
        "name": "Section 3",
        "url": "https://www.example.com/page#toc-3"
      },
      {
        "@context": "https://schema.org",
        "@type":"SiteNavigationElement",
        "@id":"#pagination",
        "name": "Previous page",
        "url": "https://www.example.com/page1"
      },
      {
        "@context": "https://schema.org",
        "@type":"SiteNavigationElement",
        "@id":"#pagination",
        "name": "Next page",
        "url": "https://www.example.com/page2"
      }
    ]
  }
</script>

这段代码会像这个示例所示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接