正确使用JSON-LD中SiteNavigationElement的语法和用法

时间:2018-10-11 14:00:53

标签: navigation schema.org json-ld

现在,在网上阅读了几篇文章之后,我终于感到困惑。我有一个带有多个子类别的主导航。找到2个例子,然后我停止了b / c,我感到很困惑。

示例1:

{
      "@context":"http://schema.org",
      "@type":"ItemList",
      "itemListElement":[
        {
          "@type": "SiteNavigationElement",
          "position": 1,
          "name": "Sign Up",
          "description": "Create your example profile.",
          "url":"https://example.com"
        },
        {
          "@type": "SiteNavigationElement",
          "position": 2,
          "name": "About us",
          "description": "Read more about example company",
          "url":"https://example.com/about"
        },
        {......

示例2:

{
        "@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"
          },
          {....

这两种用法有什么区别?它们都有效,但无法决定采用哪个。

1 个答案:

答案 0 :(得分:0)

示例1由具有两个 <figure> <div class="icon"> <i class="lni-heart"></i> </div> <% if post.image.attached? %> <%= image_tag post.image, :class => 'img-fluid' %> <% end %> </figure> 元素的ItemList组成。
示例2由两个SiteNavigationElement元素组成(并且两个元素相同,因为它们具有相同的SiteNavigationElement值)。

我想说的两种说法都不正确。

@id类型代表整个导航,而不是单个导航链接(most likely)。

SiteNavigationElement

如果要提供有关每个导航链接的数据,则可以考虑另外使用ItemList,其中每个链接可以是WebPage(用itemListElement指定)。

{
  "@context": "http://schema.org",
  "@type": "SiteNavigationElement",
  "name": "Main navigation"
}