多くのブログで参照されている元記事はこちらです。
さらに、その元記事はこちらです。
Hoctro さん、Aneesh さん、ありがとうございます。
記事の内容は今でも使えるものなのですが、少々古く、以下の問題があります。
- 構造化データの定義が schema.org でなく、Data-Vocabulary.org になっている。
- 一般的にパンくずリストで使われるタグ
<ol><li>
を使っていない。
これらの問題を修正してみます。
参考記事
1. <b:includable> の追加
上の問題を修正した <b:includable>
は以下のようになります。
なお、構造化データの形式は RDFa を採用しています。
<b:includable id='breadcrumb' var='posts'> <!-- breadcrumb start --> <ol id='breadcrumb' typeof='BreadcrumbList' vocab='http://schema.org/'> <b:if cond='data:blog.homepageUrl != data:blog.url'> <li property='itemListElement' typeof='ListItem'> <a expr:href='data:blog.homepageUrl' property='item' typeof='WebPage'> <span property='name'>Home</span></a> <meta content='1' property='position'/> </li> <b:if cond='data:blog.pageType == "static_page"'> <li><data:blog.pageName/></li> <b:else/> <b:if cond='data:blog.pageType == "item"'> <!-- breadcrumb for the post page --> <b:loop values='data:posts' var='post'> <b:if cond='data:post.labels'> <b:loop index='index' values='data:post.labels' var='label'> <!-- b:if cond='data:label.isLast == "true"' --> <li property='itemListElement' typeof='ListItem'> <a expr:href='data:label.url' property='item' typeof='WebPage'> <span property='name'><data:label.name/></span></a> <meta expr:content='data:index + 2' property='position'/> </li> <!-- /b:if --> </b:loop> <li><data:post.title/></li> <b:else/> <li>Unlabelled</li> </b:if> </b:loop> <b:else/> <b:if cond='data:blog.pageType == "archive"'> <!-- breadcrumb for the label archive page and search pages.. --> <li>Archives for <data:blog.pageName/></li> <b:else/> <b:if cond='data:blog.pageType == "index"'> <b:if cond='data:blog.pageName == ""'> <li>All posts</li> <b:else/> <li>Posts filed under <data:blog.pageName/></li> </b:if> </b:if> </b:if> </b:if> </b:if> </b:if> </ol> <!-- breadcrumb end --> </b:includable>
これを 、HTML の編集 画面で <b:includable id='main' var='top'>
の前に挿入します。
※念のため、編集前にバックアップを取っておくことをおすすめします。
注:
保存すると場所が変わります。<b:includable>
の定義場所に id がアルファベット順になるようにソートされます。また、先頭行のみインデントされます。
<b:if cond='data:blog.homepageUrl != data:blog.url'>
と 対応する をコメントアウトすればトップページに表示することができます。<!-- b:if cond='data:label.isLast == "true"' -->
<!-- /b:if -->
の箇所をコメントインすれば、(アルファベット順で)最後のラベルのみをパンくずリストに表示できます。
(複数ラベルの場合もアルファベット順・あいうえお順となります。)
Blogger の HTML編集画面での検索機能の使い方
編集画面で Ctrl
+ F
キーを押すと、右肩に Search ボックスが現れます。検索文字を入力後、Enter
キーを押すたびに見つかった文字にカーソルが移動します。
2. <b:include> の追加
次に、表示用のウィジェットタグ
<b:include data='posts' name='breadcrumb'/>
を <b:include data='top' name='status-message'/>
の前に挿入します。
<div class='blog-posts hfeed'>
が閉じる</div>
の前に置くとページ下部に表示できます。<b:if cond='!data:mobile'>
の前に置けば、モバイル版でも表示できます。
3. CSS の追加
最後に、以下のような CSS を追加します。(適宜カスタマイズしてください。)
/* breadcrumb */ ol#breadcrumb{ font-size:13px; padding: 8px; } #breadcrumb li { display: inline; list-style-type: none; } #breadcrumb li:after { content: " > "; } #breadcrumb li:last-child:after { content: none; }
以上で完成です。
構造化データテストツールについて
Google の構造化データテストツール でエラーがないか確認できます。
構造化データテストツールの URL には、パンくずリストが表示される記事ページを指定する必要があります。
構造化データテストを実施すると、BlogPosting に大量のエラーが見つかるかもしれません。 Structured Data testing Tool errors on Blogpost Blogger - Google プロダクト フォーラム によると、検索結果に反映したいわけでないなら気にしなくて良いようです。
修正したければ、こちらのサイトが役に立つかもしれません。
残課題
パンくずリストはアルファベット順に表示されており、実際の階層構造を表していません。
No comments:
Post a Comment