1

サイトに Schema.org の microdata をタグ付けしていますが、問題が発生しました。本を定義して、それを著者にすることができることを理解しています (スペースにはhttp://schema.org/ではなく ../ を使用します)。

<div itemscope itemtype="../Book">
<span itemprop="name">Charlie and the Chocolate Factory</span>
written by <span itemprop="author">Roald Dahl</span>
</div>

しかし、私は著者に関するページにタグを付けているので、彼の本をリストし、これらすべてのアイテムが彼によって書かれたものであると言う方法が必要です。彼の名前を何度もリストする必要はありません。

<article itemscope itemtype="../Person" id="main">
<h1 itemprop="name">Roald Dahl</h1>
<p>His books included <span itemscope itemtype="../Book">Charlie and the
Chocolate Factory</span> and 
<span itemscope itemtype="../Book">James and the Giant Peach</span></p>
</article>

何か案は?itemref="main"を置くだけでは役に立ちません (これら 2 つのことを一般的に関連付けるだけでなく、特定の関係、つまり作成者の関係を与えようとしているからです)。空のスパン要素は意味がありますか?:

<span itemscope itemtype="../Book">James and the Giant Peach
<span itemprop="author" itemref="main"></span></span>

更新:見上げている人のために、私はこれを理解したと思います。後で itemref で使用するために、itemscope の itemprop を定義できます。したがって、答えは次のとおりだと思います。

<article itemscope itemtype="../Person" itemprop="author" id="main">
<h1 itemprop="name">Roald Dahl</h1>
<p>His books included <span itemscope itemtype="../Book" itemref="main">Charlie
and the Chocolate Factory</span> and 
<span itemscope itemtype="../Book" itemref="main">James and the Giant Peach</span>
</article>

リンクバックしたいitempropが複数あった場合、どうすればよいかわかりません(Schema.orgは、それらの方法の1つだけが定義された双方向の関係でいっぱいです)が、これは私の特定の問題を解決します。

UPDATE2 : これで以前の問題は解決しましたが、これを他のアイテムスコープに埋め込むことができなくなりました。したがって、すべてをArticleとしてタグ付けしたいのですが、次のようにはできません。

<main itemscope itemtype="../Article">
<article itemscope itemtype="../Person" itemprop="author" id="main">
<h1 itemprop="name">Roald Dahl</h1>
....
</article></main>

これで、私の itemprop="author" ハックも最上位のArticleに割り当てられました。今、私のコードは、ロアルド・ダールが与えられた本だけでなく、この記事自体を書いたことを人々に伝えています!

これを解決する方法、またはこの問題を引き起こさない元の問題の解決策はありますか?

4

1 に答える 1