0

これまでリッチ スニペットを使用したことがないので、これは少し学習曲線のようなものです。私の問題はネストの問題だと思いますが、これらのプロパティを正しくネストする方法を明示的に示しているドキュメントはどこにも見つかりません。

複数のレビューを含む単一の製品レビューをリッチ スニペットにインデックス化し、従来の 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>

これにより、エラーが返されます:このデータにはリッチ スニペットは生成されません。これは、アイテムの複数のレビューが含まれているように見えますが、集計されたレビュー情報がないためです。

そこで、静的な値を持つダミーの Aggregate コードを追加しました。まとめて次のようになります。

<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>

これにより、私の「レビュー」はエラーになりませんが、すべての「集計レビュー」はこのエラーを押し出します:単一の集計ではなく、多くのアイテムの複数の集計レビューが含まれているように見えるため、このデータに対してリッチ スニペットは生成されません1つのアイテムのレビュー。

私が何をしてもそれ自体に反しているように見えるので、これが入れ子の問題であると私が信じているのはそのためです。

どうすればこれを修正できますか?

編集:理想的には、このアイテムの集計ビューは必要ありません。レビュアー、アイテム名、レビュー日、レビューの説明だけで十分です。

EDIT EDIT:このコードは、パスごとにデータベースから情報を取得するForループでも実行されています。

4

1 に答える 1

0

わかりましたので、ここでの問題は、単一の製品を含む Web サイトでしたが、複数のレビューは 1 つの「Review-Aggregate」と 1 つの「Rating」項目タイプのみを必要とします。ただし、複数の「レビュー」項目タイプを使用する必要があります。

したがって、私の For ループは、関連するデータ フィールドを使用してデータベース内の各行の「レビュー」を作成し、条件文の後に「レビュー-集計」および「評価」コードを配置します。

コード:

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 を使用しています。

于 2014-10-29T21:20:55.553 に答える