事件

时间:2016-03-06 12:39:34

标签: html5 schema.org microdata google-rich-snippets structured-data

我正在尝试将架构设置为我的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>

正如您所看到的,它告诉我位置地址不能为空。

我也试过使用utils:http://schema-creator.org/event.php 但即使我填写所有输入结果都相同:&#34;错误位置无效。&#34;

<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 tald me,该位置必须是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,但是就地必须有PostalAddress: - (

1 个答案:

答案 0 :(得分:3)

根据Schema.org,您的标记是正确的:location property可能包含文字

当Google的SDTT报告错误时,并不一定意味着您的标记错误。通常它是just means that you won’t get one of Google’s search result features页面。

在您的情况下,错误与Google的Event Rich Snippet有关。要显示此代码段,Google requires location属性的值为PlacePostalAddress项,但不包含文字(尽管Google也说&#34;文本字符串是允许的[...]&#34;,但他们的测试工具似乎不喜欢它。)

您的第二个代码段会执行此操作,但它不会将divlocation属性div嵌套在SportsEvent中,因此该位置未关联与事件。

关于您的第三个代码段:测试工具中似乎是一个错误,它需要address的{​​{1}}属性(Schema.org没有定义一个)。如果你关心&#34;错误&#34;测试工具报告,如果您使用PostalAddress作为Place的值,并且location具有address项作为值,则它应该有效。如果您提供PostalAddress并使用Place属性中的文字:

,它也会有效
address