事件中的 Schema.org 位置 属性 无效
Invalid Schema.org location property in Event
我正在尝试为我的 HTML 页面设置架构。验证器 (https://developers.google.com/structured-data/testing-tool) 在此页面失败:
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div itemscope itemtype="http://schema.org/SportsEvent">
<h1 itemprop="name">Event name</h1>
<p itemprop="description">Some text description ...</p>
<time itemprop="startDate" datetime="2016-03-16T16:00:00+01:00">16.3.</time> - <time itemprop="endDate" datetime="2016-03-20T16:00:00+01:00">20.3.2016</time>
<span itemprop="location">29-31 Craven Rd,London W2 3BX</span>
</div>
</body>
</html>
如您所见,位置地址不能为空。
我也试过使用工具:http://schema-creator.org/event.php
但即使我填写了所有输入,结果也是一样的:"Error invalid location."
<div itemscope itemtype="http://schema.org/SportsEvent">
<a itemprop="url" href="https://www.myevent.com">
<div itemprop="name"><strong>Me super event</strong>
</div>
</a>
<div itemprop="description">super event
</div>
<div>
<meta itemprop="startDate" content="2016-03-06T12:00">Starts: 03/06/2016 12:00PM
</div>
<meta itemprop="endDate" content="2016-03-12:00.000">Ends: 2016-03-12:00.000
</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">29-31 Craven Rd,London W2 3BX
</div>
<div>
<span itemprop="addressLocality">London
</span>,
<span itemprop="addressRegion">United kingdom
</span>
</div>
</div>
谁能告诉我如何指定位置?
编辑:
正如@unor 告诉我的,location 必须是 PostalAddress 的实例,所以我修改了它:
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div itemscope itemtype="http://schema.org/SportsEvent">
<h1 itemprop="name">Event name</h1>
<p itemprop="description">Some text description ...</p>
<time itemprop="startDate" datetime="2016-03-16T16:00:00+01:00">16.3.</time> - <time itemprop="endDate" datetime="2016-03-20T16:00:00+01:00">20.3.2016</time>
<span itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">29-31 Craven Rd</span>
<span itemprop="address">29-31 Craven Rd,London W2 3BX</span>
<span itemprop="name">Test</span>
</span>
</div>
</body>
</html>
但仍然无效,看来PostalAddress中的地址必须是Place,但是Place中必须有PostalAddress :-(
根据 Schema.org,您的标记是正确的:location
property 可能包含 Text.
当Google的SDTT报告错误时,并不一定意味着您的标记有误。通常它 用于您的页面。
在您的情况下,错误与 Google 的 Event Rich Snippet. For showing this snippet, Google requires 有关,即 location
属性 有一个 Place
或 PostalAddress
item 作为值,而不是 Text(虽然 Google 也说 "A text string is permitted […]",但他们的测试工具似乎不喜欢它)。
你的第二个代码片段这样做了,但它没有将 div
与 location
属性 嵌套在 SportsEvent
的 div
中,因此该位置与事件无关。
关于你的第三个片段:这似乎是测试工具中的一个错误,它需要 address
属性 for PostalAddress
(Schema.org 没有定义一)。如果您关心 "errors" 测试工具报告,如果您使用 Place
作为 location
的值,并且 address
具有 PostalAddress
,它应该可以工作项目作为价值。如果您提供 Place
并在 address
属性:
中使用文本,它也有效
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="name">Test</span>
<span itemprop="address">29-31 Craven Rd, London W2 3BX</span>
</div>
我正在尝试为我的 HTML 页面设置架构。验证器 (https://developers.google.com/structured-data/testing-tool) 在此页面失败:
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div itemscope itemtype="http://schema.org/SportsEvent">
<h1 itemprop="name">Event name</h1>
<p itemprop="description">Some text description ...</p>
<time itemprop="startDate" datetime="2016-03-16T16:00:00+01:00">16.3.</time> - <time itemprop="endDate" datetime="2016-03-20T16:00:00+01:00">20.3.2016</time>
<span itemprop="location">29-31 Craven Rd,London W2 3BX</span>
</div>
</body>
</html>
如您所见,位置地址不能为空。
我也试过使用工具:http://schema-creator.org/event.php 但即使我填写了所有输入,结果也是一样的:"Error invalid location."
<div itemscope itemtype="http://schema.org/SportsEvent">
<a itemprop="url" href="https://www.myevent.com">
<div itemprop="name"><strong>Me super event</strong>
</div>
</a>
<div itemprop="description">super event
</div>
<div>
<meta itemprop="startDate" content="2016-03-06T12:00">Starts: 03/06/2016 12:00PM
</div>
<meta itemprop="endDate" content="2016-03-12:00.000">Ends: 2016-03-12:00.000
</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">29-31 Craven Rd,London W2 3BX
</div>
<div>
<span itemprop="addressLocality">London
</span>,
<span itemprop="addressRegion">United kingdom
</span>
</div>
</div>
谁能告诉我如何指定位置?
编辑: 正如@unor 告诉我的,location 必须是 PostalAddress 的实例,所以我修改了它:
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div itemscope itemtype="http://schema.org/SportsEvent">
<h1 itemprop="name">Event name</h1>
<p itemprop="description">Some text description ...</p>
<time itemprop="startDate" datetime="2016-03-16T16:00:00+01:00">16.3.</time> - <time itemprop="endDate" datetime="2016-03-20T16:00:00+01:00">20.3.2016</time>
<span itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">29-31 Craven Rd</span>
<span itemprop="address">29-31 Craven Rd,London W2 3BX</span>
<span itemprop="name">Test</span>
</span>
</div>
</body>
</html>
但仍然无效,看来PostalAddress中的地址必须是Place,但是Place中必须有PostalAddress :-(
根据 Schema.org,您的标记是正确的:location
property 可能包含 Text.
当Google的SDTT报告错误时,并不一定意味着您的标记有误。通常它
在您的情况下,错误与 Google 的 Event Rich Snippet. For showing this snippet, Google requires 有关,即 location
属性 有一个 Place
或 PostalAddress
item 作为值,而不是 Text(虽然 Google 也说 "A text string is permitted […]",但他们的测试工具似乎不喜欢它)。
你的第二个代码片段这样做了,但它没有将 div
与 location
属性 嵌套在 SportsEvent
的 div
中,因此该位置与事件无关。
关于你的第三个片段:这似乎是测试工具中的一个错误,它需要 address
属性 for PostalAddress
(Schema.org 没有定义一)。如果您关心 "errors" 测试工具报告,如果您使用 Place
作为 location
的值,并且 address
具有 PostalAddress
,它应该可以工作项目作为价值。如果您提供 Place
并在 address
属性:
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="name">Test</span>
<span itemprop="address">29-31 Craven Rd, London W2 3BX</span>
</div>