2016-07-26 51 views
1

我有一個包含多個具有相同屬性(名稱,位置,說明等)的Schema.org事件的頁面。我已經想通了如何做這樣的事情來處理地點:如何參考Microdata中多個Schema.org事件的描述?

<div itemscope itemtype="http://schema.org/Event"> 
    … 
    <meta itemprop="location" itemscope itemtype="http://schema.org/Place" itemref="venue-place" /> 
</div> 

<span id="venue-place"> 
    <a href="http://www.example.com/" itemprop="url"> 
    <span itemprop="name">Crystal Ballroom</span> 
    </a> 

    <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> 
    <span itemprop="streetAddress">1332 W Burnside St.</span> 
    <span itemprop="addressLocality">Portland</span>, 
    <span itemprop="addressRegion">OR</span> 
    <span itemprop="postalCode">97209</span> 
    </span> 
</span> 

然而,我無法弄清楚如何對事件的描述做到這一點。我做了這樣的事情,這使得空的描述出現在事件在谷歌的結構化數據測試工具:

<div itemscope itemtype="http://schema.org/Event"> 
    … 
    <meta itemprop="description" itemscope itemref="event-summary" /> 
</div> 

<div id="event-summary"> 
    This is the description text. 
</div> 

我在做什麼錯?

回答

2

itemref屬性允許您引用屬性(itemprop),並且必須在應將這些屬性添加到的項目(itemscope)上指定它。

所以,你必須

  • 移動itemref="event-summary"Event元素,
  • 移動itemprop="description"與描述的元素。
<div itemscope itemtype="http://schema.org/Event" itemref="event-summary"> 
</div> 

<div itemprop="description" id="event-summary"> 
</div> 

你會非常做到這一點的location,也因爲有meta元素沒有content屬性無效(但可能會被添加一個空的屬性是固定的),因爲你可以拯救一個元素就是這樣。

<div itemscope itemtype="http://schema.org/Event" itemref="venue-place event-summary"> 
</div> 

<div itemprop="location" itemscope itemtype="http://schema.org/Place" id="venue-place"> 
</div> 

<div itemprop="description" id="event-summary"> 
</div> 

(需要注意的是谷歌的結構化數據測試工具將使用Place元素@id下顯示的URI。在他們結束I think that’s a bugid價值,所以不要讓這種混淆你,如果你想擺脫它可以添加一個itemid屬性,此外還可以爲該地點提供真實/實際的URI。)

+0

您剛剛修復了我對這個東西的一大堆誤解。謝謝! –