2011-11-07 13 views
12

私はMicrodataで働いており、Schema.orgのkeywordsCreativeWorkに使用したいと考えています。CreativeWorkのMicrodataでキーワードをどのようにフォーマットしますか?

スキーマではテキストであることが指定されていますが、各キーワードをitemprop="keywords"という別個の要素に入れていますか、それともすべてを1つのkeywords要素に入れるのですか?私がそれらをすべて1つの要素に入れると、区切り記号としてカンマを使用しますか?

答えて

9

次のようにして、キーワードごとにitemprop要素を作成する必要があります。

<div itemscope itemtype="http://schema.org/CreativeWork"> 
    <span itemprop="name">Resistance 3: Fall of Man</span> 
    by <span itemprop="author">Sony</span>. 
    Keywords: 
    <a href="/tags/game/"><span itemprop="keywords">Game</span></a>, 
    <a href="/tags/adult/"><span itemprop="keywords">Adult</span></a> 
</div> 
+0

本当に正しい答えですか?プロパティごとにitemprop属性を1つしか持てないように思えました。 –

+1

@fwuensche:あなたは[同じ物件を1アイテムに何度も持つことができます](http://stackoverflow.com/a/22337572/1591669)。 – unor

+0

両方のhrefリンクにitemprop = "url"を追加します。 – Jonadabe

3

の仕様の私の読書は、プロパティごとに1つにitemprop属性を持つことができるという結論に私をリード。

つまり、各キーワードのitemprop要素を作成すると正しいマイクロデータ構文が作成されるとは思いません。私は何もないので、キーワードは、複数の単語が含まれている場合に何をすべきかわからない

<span itemprop="keywords"> 
    <a href="/tags/game/">Game</a>, 
    <a href="/tags/adult/">Adult</a> 
    </span> 

or 

<meta itemprop="keywords" content="Game Adult"/> 

私は、スペースで区切られたリスト内の各キーワードを入れて、単一にitempropを使用しますテキスト内でキーワードをどのように区切るべきかを指定する仕様(スペースで区切り、句読点のようにカンマのようにする)。

@Lawrence Woodman:同じプロパティに対して複数のitemprop要素を持つことが許可されている場所を指定することはできますか?

+1

私はあなたが情報を得る場所に従うことができません。現在のMicrodataドラフトのプロパティごとにitemprop属性を1つとします。http://www.w3.org/html/wg/drafts/microdata/master/#property-names プロパティ名またはプロパティ値を参照していますか?このコード例では、「a」プロパティの値は「1」と「2」です。 また、要素が 'a'の場合、値は' href'属性からのURLなので、最初の例は 'keywords:['/ tags/game /'、 '/ tags/adult/'] 'を名前と値のペアとして使用しています。 –

2

ドキュメントを読むことで、メタタグを使用して、隠されているかどうかにかかわらずコンテンツを解析することができます。コードpriceCurrencydatePublishedの場合は、schema.org documentationから取得しました。

<div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
    Price: <span itemprop="price">$6.99</span> 
    <meta itemprop="priceCurrency" content="USD" /> 
    <link itemprop="availability" href="http://schema.org/InStock">In Stock 
</div> 

Product details 
<span itemprop="numberOfPages">224</span> pages 
Publisher: <span itemprop="publisher">Little, Brown, and Company</span> - 
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991 
Language: <span itemprop="inLanguage">English</span> 
ISBN-10: <span itemprop="isbn">0316769487</span> 

私が正しいと仮定して、以下のようにコードを変更しました。

<div itemscope itemtype="http://schema.org/CreativeWork"> 
    <!-- way too many content --> 
    <h5>Keywords</h5> 
    <meta itemprop="keywords" content="Rio de Janeiro, Brazil"> 
    <a href="/tags/rio/" rel="nofollow">Rio de Janeiro</a> 
    <a href="/tags/brazil/" rel="nofollow">Brazil</a> 
</div> 

私は数日間で展開しますので、申し訳ありませんが、今すぐ動作するかどうかはわかりません。

更新:コードをデプロイした後、それは魅力的に機能します。結果はGoogle Data Testing Toolで、the real productで使用されているリッチスニペットと比較できます。

7

Schema.orgのkeywords propertyの定義が変更されました。現在は次のようになっています。

このコンテンツを記述するキーワードまたはタグ。キーワードリスト内の複数のエントリは、通常カンマで区切られます。

だから、ミクロで次のようになります。

<article itemscope itemtype="http://schema.org/BlogPosting"> 

    <footer> 
    <ul itemprop="keywords"> 
     <li><a href="/tags/foo" rel="tag">foo</a>,</li> 
     <li><a href="/tags/bar" rel="tag">bar</a></li> 
    </ul> 
    </footer> 

</article> 

(例semantic markup for tagsについての私の答えの関連から撮影します。)

ページ上に表示カンマを持ってしたくない場合は、タグのために通常のマークアップに加えてmeta要素を使用することができます。

<meta itemprop="keywords" content="foo, bar" /> 

(それはこのmeta要素を配置するallowedです`body 'に)

+0

これは正解です – xorinzor