来自结构化数据测试工具的面包屑清单最后一项错误:“必须输入项目字段的值。”

时间:2019-05-13 18:16:03

标签: html schema.org breadcrumbs rdfa

我们使用BreadcrumbList提供的示例使用RDFa格式显示面包屑。当将以下示例插入Google's Structured Data Testing Tool时,会出现以下错误。

设置:

  1. 显示BreadcrumbList中的所有item
  2. 面包屑中的最后item以纯文本显示。

使用RDFa格式时,最后一个<ol vocab="http://schema.org/" typeof="BreadcrumbList"> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="https://example.com/dresses"> <span property="name">Dresses</span></a> <meta property="position" content="1"> </li> <li property="itemListElement" typeof="ListItem"> <a property="item" typeof="WebPage" href="https://example.com/foo-bar"> <span property="name">foo-bar</span></a> <meta property="position" content="2"> </li> <li property="itemListElement" typeof="ListItem"> <span property="name">Real Dresses</span> <meta property="position" content="3"> </li> </ol> 的正确格式是什么?

示例代码

<ol vocab="http://schema.org/" typeof="BreadcrumbList">
  <li property="itemListElement" typeof="ListItem">
    <a property="item" typeof="WebPage" href="https://example.com/dresses">
      <span property="name">Dresses</span></a>
    <meta property="position" content="1">
  </li>
  <li property="itemListElement" typeof="ListItem">
    <a property="item" typeof="WebPage" href="https://example.com/foo-bar">
      <span property="name">foo-bar</span></a>
    <meta property="position" content="2">
  </li>
  <li property="itemListElement" typeof="ListItem">
    <div property="item">
      <span property="name">Real Dresses</span>
    </div>
    <meta property="position" content="3">
  </li>
</ol>

使用以上代码的最后一项的错误消息:

  

必须输入item字段的值。

我们尝试过但未验证的内容

<div property="item">

从上方使用textscan时出现错误消息:

  

为item.id提供的值必须是有效的URL。

3 个答案:

答案 0 :(得分:2)

我在本地项目中遇到了同样的问题:

LOGIN

抛出错误:必填字段为必填项。

对我来说,可以通过为itemprop提供有效的URL来解决:

@loginName

答案 1 :(得分:1)

即使您不想显示超链接,(当前页面的)最后一项仍然代表网页。

因此,只需将typeof="WebPage"添加到最后一项的div

<div property="item" typeof="WebPage">

您仍可以使用resource属性提供最后一项的URI(不显示):

<div property="item" typeof="WebPage" resource="https://example.com/real-dresses">

结果是:

    <ol vocab="http://schema.org/" typeof="BreadcrumbList">

      <li property="itemListElement" typeof="ListItem">
        <a property="item" typeof="WebPage" href="https://example.com/dresses">
          <span property="name">Dresses</span></a>
        <meta property="position" content="1">
      </li>

      <li property="itemListElement" typeof="ListItem">
        <a property="item" typeof="WebPage" href="https://example.com/foo-bar">
          <span property="name">foo-bar</span></a>
        <meta property="position" content="2">
      </li>

      <li property="itemListElement" typeof="ListItem">
        <div property="item" typeof="WebPage" resource="https://example.com/real-dresses">
          <span property="name">Real Dresses</span>
        </div>
        <meta property="position" content="3">
      </li>

    </ol>

答案 2 :(得分:0)

当您不希望使面包屑的最后一个元素成为超链接时,就会出现问题,在大多数情况下,超链接只是指向页面本身的链接。在这种情况下,为避免Google的结构化数据测试工具出错,您也可以自由使用json-ld

HTML

<ol>
  <li>
    <a href="https://example.com/dresses">
      <span>Dresses</span></a>      
  </li>
  <li>
    <a href="https://example.com/foo-bar">
      <span>foo-bar</span></a>      
  </li>
  <li>
    <div>
      <span>Real Dresses</span>
    </div>      
  </li>
</ol>

JSON + LD

<script type="application/ld+json">
{
  "@context": "https://schema.org/", 
  "@type": "BreadcrumbList", 
  "itemListElement": [{
    "@type": "ListItem", 
    "position": 1, 
    "name": "Dresses",
    "item": "https://example.com/dresses"  
  },{
    "@type": "ListItem", 
    "position": 2, 
    "name": "foo-bar",
    "item": "https://example.com/foo-bar"  
  },{
    "@type": "ListItem", 
    "position": 3, 
    "name": "Real Dresses",
    "item": "https://example.com/real-dresses"  
  }]
}
</script>