Rich Snippets嵌套问题

时间:2014-10-29 19:45:33

标签: asp-classic microdata google-rich-snippets

我之前从未使用Rich Snippets,所以这对我来说有点学习曲线。我相信我的问题是嵌套问题,但我无法在任何地方找到明确说明如何正确嵌套这些属性的文档。

我希望将单一产品评论的索引编入Rich Snippets,并使用经典ASP提取不同的数据字段,这是我的代码:

<div>
    <div itemscope itemtype="http://data-vocabulary.org/Review">
        <span itemprop="itemreviewed">Forma Stanzol</span><br />
        By <span itemprop="reviewer"><%=formaStanzolReviewArray(0,i)%></span><br />
        <time itemprop="dtreviewed" datetime="<%=FormatDateTime(formaStanzolReviewArray(1,i),2)%>"><%=FormatDateTime(formaStanzolReviewArray(1,i),2)%></time> <br />        
        <span itemprop="description"><%=formaStanzolComment%></span>
    </div>      
</div>

这会返回错误:不会为此数据生成任何丰富的代码段,因为它似乎包含对项目的多次审核,但没有汇总审核信息。

所以,我添加了一个带有静态值的伪聚合代码,这里看起来像是一起的:

<div>
    <div itemscope itemtype="http://data-vocabulary.org/Review">
        <span itemprop="itemreviewed">Forma Stanzol</span><br />
        By <span itemprop="reviewer"><%=formaStanzolReviewArray(0,i)%></span><br />
        <time itemprop="dtreviewed" datetime="<%=FormatDateTime(formaStanzolReviewArray(1,i),2)%>"><%=FormatDateTime(formaStanzolReviewArray(1,i),2)%></time> <br />        
        <span itemprop="description"><%=formaStanzolComment%></span>
    </div>
    <div itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
        <span itemprop="itemreviewed">Forma Stanzol</span>
        <span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
            <span itemprop="average">9</span>
            out of <span itemprop="best">10</span>
        </span>
        based on<span itemprop="count">5</span> user reviews.
    </div>           
</div>

这会导致我的评论&#34;不是错误,而是我的所有&#34;聚合评论&#34;推出此错误:不会为此数据生成任何丰富的代码段,因为它似乎包含多个项目的多个汇总评论,而不是对一个项目的单个汇总评论。

无论我做什么,似乎都在反对自己,这就是为什么我认为这是一个嵌套问题。

我该如何解决这个问题?

编辑:理想情况下,我不想要事件的聚合视图。我只需要评论者,项目名称,评论日期和评论说明。

编辑编辑:此代码也在For循环中运行,每次传递都会从数据库中获取信息。

1 个答案:

答案 0 :(得分:0)

好的,所以这里的问题是一个网站,只有一个产品,但多个评论只需要一个“评论聚合”和一个“评级”项目类型。但是,必须使用多个“Review”项类型。

因此,我的For循环为数据库中的每一行创建一个“Review”,使用相关的数据字段,然后在条件语句之后,放置“Review-Aggregate”和Rating“代码。

代码:

For i = 0 to uBound(formaStanzolReviewArray,2)
    reviewCount = reviewCount + 1

    formaStanzolComment = trim(formaStanzolReviewArray(2,i))

    'Do not show reviews with empty comments
    If Not (formaStanzolComment = "") OR isNull(formaStanzolComment) Then
    %>
        <div>
            <div itemscope itemtype="http://data-vocabulary.org/Review">
                <span style="position: absolute; left: 9999px;" itemprop="itemreviewed">Forma Stanzol</span>
                Rating: <span itemprop="rating"><%=formaStanzolReviewArray(3,i)%></span> - 
                By <span itemprop="reviewer"><%=formaStanzolReviewArray(0,i)%></span> - 
                <time itemprop="dtreviewed" datetime="<%=FormatDateTime(formaStanzolReviewArray(1,i),2)%>"><%=FormatDateTime(formaStanzolReviewArray(1,i),2)%></time> <br />        
                <span itemprop="description"><%=formaStanzolComment%></span>
            </div>        
        </div>
    <%
    sumRating = sumRating + formaStanzolReviewArray(3,i)
    End If
Next
ratingAvg = sumRating / reviewCount
%>
<div style="position: absolute; left: 9999px;">
    <div itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
        <span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
            <span itemprop="worst">1</span>
            <span itemprop="average"><%=ratingAvg%></span>
            out of <span itemprop="best">5</span>
        </span>
        based on <span itemprop="votes"><%=reviewCount%></span> ratings.
        <span itemprop="count"><%=reviewCount%></span> user reviews.
    </div>
</div>
<%

将其视为For循环中的多个用户评论,但我们会在汇总中收集所有这些评论,然后为该汇总评分。

希望这有助于任何有嵌套问题的人。

请注意:我正在使用经典的ASP代码。