我正在尝试微数据,特别是使用schema.org标签。我试图描述可能具有相同位置属性的多个体育赛事。
<!--Sports Events -->
<div itemscope itemtype="http://schema.org/SportsEvent">
<span itemprop="name" style="font-weight:bold;">Event One</span><br />
<meta itemprop="location" content="venue" itemscope itemtype="http://schema.org/Place" itemref="olympicpark" />
<meta itemprop="startDate" content="2011-08-04T10:00">
<meta itemprop="endDate" content="2011-08-04T13:45">
</div>
<div itemscope itemtype="http://schema.org/SportsEvent">
<span itemprop="name" style="font-weight:bold;">Event Two</span><br />
<meta itemprop="location" content="venue" itemscope itemtype="http://schema.org/Place" itemref="olympicpark" />
<meta itemprop="startDate" content="2011-08-04T10:00">
<meta itemprop="endDate" content="2011-08-04T13:45">
</div>
<!--End Events -->
<!--Places -->
<h3>Venues</h3>
<div id="olympicpark">
<a itemprop="url" href="http://www.london2012.com/olympic-park">Olympic Park</a>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">Olympic Park</span>
<span itemprop="addressLocality">Stratford</span>
<span itemprop="addressRegion">London</span>
<span itemprop="postalCode">E20 2ST</span>
</div>
<div itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
<meta itemprop="latitude" content="51.54615" />
<meta itemprop="longitude" content="-0.01269" />
</div>
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">4</span> stars - based on
<span itemprop="reviewCount">250</span> reviews
</div>
</div>
<!-- End Places -->
每个体育赛事的属性“位置”通过itemref属性链接到“奥林匹克公园”。这似乎是正确的,google rich snippets工具报告没有错误。我唯一担心的是,丰富的片段数据显示的是,该位置属性并未直接指向奥林匹克公园,而是指向另一个引用它的项目。
这可以在下面看到:
Item
Type: http://schema.org/sportsevent
name = Event Two
location = Item( 2 )
startdate = 2011-08-04T10:00
enddate = 2011-08-04T13:45
Item 2
Type: http://schema.org/place
Ref to item: Item( olympicpark )
我希望看到的是每个体育赛事项目的微观数据报告“location = Item(olympicpark)”。如果我将位置更改为以下
,我可以得到这个<span itemprop="location" content="venue" itemscope itemtype="http://schema.org/Place" itemref="olympicpark">
如果我这样做,那么不使用开始日期和结束日期,我可以理解,因为span标记没有关闭。
我正试图解决这个问题,如果可能的话,我会非常感谢一些帮助。如果这看起来令人困惑,我很难道歉,我很难描述这个问题。
麦克
答案 0 :(得分:1)
我认为您的原始实现没有任何问题。根据我在自己网站上阅读和体验过的内容,按照您的方式进行操作是正确的,以避免明确创建嵌套在每个事件中的多个位置。
google rich snippet工具向您展示的原因是它需要传达该位置的类型。如果它只是按照你想要的那样location = Item ( olympicpark )
,你就会想知道它认为Item ( olympicpark)
是什么类型的。{/ p>
答案 1 :(得分:1)
您应该在olympicpark div中指定itemscope和itemtype,并使用itemid而不是id。检查一下:How do I relate items in schema.org?
答案 2 :(得分:0)
我唯一担心的是,丰富的片段数据显示的是,该位置属性并非直接指向奥林匹克公园,而是指向引用它的另一个项目。
完全正确,你不能对它感到困惑:用itemprop="location" itemscope itemtype="http://schema.org/Place"
创建一个带有自己属性的嵌入/嵌套项,它们被正确显示为item2的属性