当前位置: 首页 > 面试题库 >

如何使用JSON-LD标记面包屑列表中的最后一个非链接项目

通令
2023-03-14
问题内容

我在面包屑跟踪中使用结构化数据。我指的是此文档:

https://developers.google.com/structured-
data/breadcrumbs

我已经建立了一个面包屑列表。我还会显示引用当前页面的最后一项,但这不是链接,而只是纯文本。这是我的HTML标记的样子:

<ol class="breadcrumb">
     <li><a href="http://www.example.com/">Home</a></li>
     <li><a href="http://www.example.com/brands">Brands</a></li>
     <li class="active">My Brand</li>
</ol>

我已选择使用JSON-LD标记面包屑痕迹。我不确定面包屑列表中的最后一个不是链接,因此如何确定该标记呢?我应该放弃吗?这是我目前拥有的:

<script type="application/ld+json">
{
     "@context": "http://schema.org",
     "@type": "BreadcrumbList",
     "itemListElement": [{
          "@type": "ListItem",
          "position": 1,
          "item": {
               "@id": "http://www.example.com/",
               "name": "Home"
          }
     }, {
          "@type": "ListItem",
          "position": 2,
          "item": {
               "@id": "http://www.example.com/brands",
               "name": "Brands"
          }
     }]
}
</script>

我是否需要像添加其他两个项目一样添加最后一个项目,还是需要保留它?它仅用于具有链接的项目吗?


问题答案:

当然,您只需为ListItem最后一项提供,而省略@id

<script type="application/ld+json">
{
     "@context": "http://schema.org",
     "@type": "BreadcrumbList",
     "itemListElement": [{
          "@type": "ListItem",
          "position": 1,
          "item": {
               "@id": "http://www.example.com/",
               "name": "Home"
          }
     }, {
          "@type": "ListItem",
          "position": 2,
          "item": {
               "@id": "http://www.example.com/brands",
               "name": "Brands"
          }
     }, {
          "@type": "ListItem",
          "position": 3,
          "item": {
               "name": "My Brand"
          }
     }]
}
</script>

这是有效的JSON-LD,根据Schema.org可以使用。

但是,无论如何,我都会添加上一个/当前项目的URL。如果是RDFa或Microdata,我会使用link元素作为最后一项的URL(因此该URL对人类访问者而言不可单击,但是漫游器具有更多数据),但是对于JSON-
LD,此问题不相关首先,因为人类访客通常不会与之互动。

唯一可以想象到的缺点是,如果HTML中的内容与JSON-
LD中的内容不匹配(即缺少最后一项的URL),那么消费者就会感到困惑。但是我认为这种风险非常低,因为众所周知,处理最后一个面包屑项目有不同的方法。

就文档而言,Schema.org只说BreadcrumbList“通常以当前页面结尾”。

并以消费者为例,Google对面包屑功能也说了同样的话:

面包屑痕迹可以包括或忽略出现在其上的页面的面包屑。

但是他们没有说最后一个项目没有URL的情况。



 类似资料:
  • 问题内容: 我发现新手很难将几个或几个JSON-LD标记合并在一起。你能告诉我我在做什么错吗? 当我在Google结构化数据测试工具中输入以下标记时,它仅显示架构类型的结果,同时也显示架构类型的结果。 问题答案: 要指定多个顶级项目,您可以使用三个选项: 数组 缺点:您必须为每个项目重复此操作。 多个要素 缺点:您必须为每个项目重复元素和。 但是通常最好只提供一个顶级项,并将其他项嵌套在适当的属性

  • 问题内容: 我正在练习使用链表节点,遇到了一个我不知道如何回答的问题。如何删除链接列表中的最后一个节点。下面的代码适用于所有条目的最后一个节点。最后一个不会被删除。 节点类别 主要 问题答案: 我想您的最后一个元素失败了。最后一个元素将没有元素。因此,不会将最后一个元素与传递的字符串进行比较。您应该使用调试器进行跟踪。

  • breadcrumb标签 标签名 作用 包含属性 breadcrumb 获取面包屑 cid,self 标签属性: | 标签属性名 | 含义 | | --- | --- | | cid | 当前的分类 id | | self | 是否包括自己,true或 false | 一个面包屑导航 <php> /*当前文章分类 id*/ $currentCid=3; </php> <ol class="brea

  • 我有一个for循环,它遍历CSV中的每一行,我创建了一个包含列表的字典,但是列表被重写了,因为字典键被重复了几次。我如何总结或追加到列表中的第二(1)位置相同的键的下一个值下一个循环迭代? 因为使用append时,如果再次找到现有键,则会覆盖该值,因此该键的值会被一次又一次地覆盖。 CSV中的字段包括: 输出应该是这样的:

  • 问题内容: 如果我有:和 如果调用,我是否可以通过这种方式将linkedlist2附加到linkedlist1的末尾: 它变为并 变为? 那可能吗 ?还是我需要其他结构? 以下代码不起作用: 输出: 问题答案: Java提供的标准LinkedList类缺少此功能。 正如Donal Boyle所发布的那样,您可以将一个列表的内容添加到另一个列表中,但这并不能像您所描述的那样保持链接。

  • 我有两个目标 我想在汽车零件上创建一个webclient,它将返回给我一个