Bloggerの投稿をschema.orgのDescriptionに対応させる
において、data:blog.metaDescriptionの扱いを間違えて解釈していましたので修正します。
検索設定 メタ タグ
と 投稿記事ごとの検索向け説明
は、どちらも、data:blog.metaDescription が使われています。(前回は別個のものとして扱っていました)
検索設定のメタタグはブログの説明。検索向け説明は投稿記事の説明。というのは正しかったのですが、どちらも data:blog.metaDescription に格納されます。
また、<b:include data='blog' name='all-head-content'/>で一斉にはき出されますが、それと別に、data:blog.metaDescriptionタグのみでも利用できます。
ページタイプによる data:blog.metaDescription の値の変遷
修正 - data:post.snippet を description に割り当てる方法
<div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<b:if cond='data:blog.url == data:post.url'> <!-- 個別ページ -->
<meta expr:content='data:blog.metaDescription' itemprop='description'/>
<b:else/>
<meta expr:content='data:post.snippet' itemprop='description'/>
</b:if>
<meta expr:content='data:post.snippet' itemprop='description'/>
</b:if>
<b:if cond='data:blog.url == data:post.url'></b:if> はあまり見かけない分岐ですが、item と static_page です。
item (個別の記事)に検索向け説明があればそれを使用。なければ本文から itemprop='description' を設定しています。
個々の記事の検索向け説明は、index のページでは取得できないので、一律にdata:post.snippet で記事の内容から description を取得しています。
公式のテンプレートの記事の一覧ページでは itemprop='description' を指定していないのですが、気になったので指定しておきました。そのかわりテンプレート ソースの分岐が複雑になっています。
一覧ページで個々の記事の itemprop='description'を指定しないなら、かなり簡単になります。
<meta expr:content='data:blog.metaDescription' itemprop='description'/>
<b:else/>
<meta expr:content='data:post.snippet' itemprop='description'/>
</b:if>
または、前回の記事本文をdescriptionに割り当てる公式の方法が簡単です。
<data:blog.metaDescription/> はページタイプにより参照先が変わる特殊なデータ タグのため、テンプレートが間違っているのではないかと疑ってしまいましたが正しいです。
普通は値は変化しても参照先は同じで、テンプレートの HTML で場合分けしますが、その作業を Blogger 側がやっているということになります。
融通が利かないようですが使いどころにより分岐が必要ない分、より便利に利用できたりします。
例えば、og:description の設定は、ものすごく簡単にできます。
<meta expr:content='data:blog.metaDescription' name='og:description'/>
</b:if>