为Q&A HTML设置微数据的正确方法

Jér*_*nge 6 html microdata schema.org

假设有一个简单的问题并回答HTML并想添加微数据,应该如何进行?

<h2>My Question</h2>
<p>My Answer</p>
Run Code Online (Sandbox Code Playgroud)

我知道schema.org的例子,但我不太清楚.看起来有点矫枉过正.我需要一个简单的解决方案 我可以这样做吗?

<h2 itemscope itemtype="http://schema.org/Question">My Question</h2>
<p itemscope itemtype="http://schema.org/Answer">My Answer</p>
Run Code Online (Sandbox Code Playgroud)

我只想说出问题是什么,答案是什么.这对搜索引擎来说足够了吗?或者我应该有更复杂的东西,如:

<div itemscope itemtype="http://schema.org/Question">
  <h2 itemprop="name">My Question</h2>
  <p itemscope itemtype="http://schema.org/Answer">My Answer</p>
</div>
Run Code Online (Sandbox Code Playgroud)

itemprop="name"正确的方法来说出问题是什么?是什么区别itemprop="name",并itemprop="text"在上面提到的schema.org的例子吗?

uno*_*nor 6

从你的第一个例子开始,Microdata解析器只会知道有一个Question和一个Answer项目,没有任何进一步的内容.微数据没有指定itemscope必须考虑具有属性的HTML元素的内容,它只关心属性值.

使用一些在线Microdata解析器测试您的示例:


nametext

对于这个问题,name将是"为问答HTML设置微数据的正确方法",这text将是问题正文("Say one有一个简单的问题......").

如果整个问题只包含这样一条短线,我会使用该text属性而不是name(*).name如果你想要/需要它,主要也可以是"问题1".

但是你也可以将这两个属性用于一个简短的问题,即,itemprop="name text"但这可能不是很优雅(但是,如果你知道某些数据消费者使用该name属性,它就会有意义).

*Answer也使用text(并且没有name)的例子.


您可能还想使用Question的suggestedAnswer属性和/或Answer的parentItem属性来关联这两个项目.

所以对于一个简短的问题,它可能看起来像:

<section itemscope itemtype="http://schema.org/Question">
  <h2 itemprop="name text">My Question</h2>
  <div itemprop="suggestedAnswer" itemscope itemtype="http://schema.org/Answer">
    <p itemprop="text">My Answer</p>
  </div>
</section>
Run Code Online (Sandbox Code Playgroud)