在UserComments架构上发出dtstart警告

时间:2012-07-31 12:54:05

标签: html html5 microdata schema.org

我在评论中提供了以下富代码段代码:

<ul itemscope itemtype="http://schema.org/UserComments">
    <li id="comment-1" class="comment">
        <span itemprop="name" class="author">Author 1</span>
        <p itemprop="commentText">Bla Bla Bla</p>
        <time itemprop="commentTime" content="2012-07-29" datetime="2012-07-29T05:55+00:00" title="Jul 29, 2012 5:55">2 days ago</time>
    </li>

    <li id="comment-2" class="comment">
        <span itemprop="name" class="author">Author 2</span>
        <p itemprop="commentText">yada yada yada</p>
        <time itemprop="commentTime" content="2012-07-30" datetime="2012-07-30T04:44+00:00" title="Jul 30, 2012 4:44">yesterday</time>
    </li>
 </ul>

根据schema.org/UserComments,这是正确的。但是,Google's Rich Snippets Testing Tool正在发出警告:

  

警告:缺少必填字段“dtstart”。

dtstart甚至不是UserComments事件的属性。我应该忽略这个警告(谷歌的工具是测试版)吗?或者我错过了什么?

4 个答案:

答案 0 :(得分:11)

我想我找到了答案。正确的HTML代码似乎是这样的:

<ul>
    <li id="comment-1" itemtype="http://schema.org/Comment" itemscope="itemscope" itemprop="comment">
        <span itemprop="author">Author 1</span>
        <p itemprop="text">Bla Bla Bla</p>
        <time itemprop="dateCreated" content="2012-07-29" datetime="2012-07-29T05:55+00:00" title="Jul 29, 2012 5:55">2 days ago</time>
    </li>
 </ul>

每条评论都有自己的itemcope。这意味着您必须对每条评论重复itemtype="http://schema.org/Comment" itemscope="itemscope" itemprop="comment"

我在检查Google's example for "Products with many offers"后得出了这个结论。他们使用eBay页面作为示例,其中包含有关产品的多个评论。 ReviewComment都是CreativeWork的一部分。

答案 1 :(得分:1)

我能够让Google验证工具使用UserComments正确验证网页。我承认很难确定哪个是首选的评论格式(UserComments vs Comment),但http://schema.org/CreativeWork声明comment属于UserComments类型,所以我现在就开始了。

假设您的UserComments实例与CreativeWork类似,我认为避免Google验证错误的关键是将itemprop='comment'属性添加到UserComment { {1}}元素。

在您的情况下,请尝试更新您的行以包含该属性,即:

itemscope

我发现当<ul itemprop="comment" itemscope itemtype="http://schema.org/UserComments"> 中包含的UserComments包含正确的CreativeWork时,Google会正确解析它们而没有错误。当itemprop丢失时我确实看到了这个错误,我相信Google在这种情况下将其视为一般事件。顺便提一下,itemprop='comment'startDate的同义词(参考:https://support.google.com/webmasters/answer/164506?hl=en)。

答案 2 :(得分:0)

不使用它:itemprop =“comment”

<ul>
    <li id="comment-1" itemtype="http://schema.org/Comment" itemscope="itemscope">
        <span itemprop="author">Author 1</span>
        <p itemprop="text">Bla Bla Bla</p>
        <time itemprop="dateCreated" content="2012-07-29" datetime="2012-07-29T05:55+00:00" title="Jul 29, 2012 5:55">2 days ago</time>
    </li>
 </ul>

答案 3 :(得分:0)

经过大量尝试和错误后,我发现了一些可行的方法,并通过了测试工具的测试。

<div itemprop="comment" itemscope itemtype="http://schema.org/UserComments">
    <p itemprop="commentText"> bla bla bla </p>
    <span itemprop="name" class="author">billy bob</span>
    <span itemprop="commentTime" content="2014.2.28" >Feb 28 2014</span>
</div>