
前回の投稿でTumblrでタグ別のフィードを配信する方法を書きましたが、今回はBloggerで同じようなことを実現する方法について書いてみたいと思います。BloggerもTumblrと同じく、ラベル毎にRSSを配信することができることはできるのですが、そのことがビジターばかりではなく、ブログの運営者にもわかり難くなっています。TumblrもBloggerもデフォルトでタグ/ラベルのRSSをユーザに知らせるようにすればいいのに、とはじめは思いましたが、特殊な場合を除いてあまり需要がないのかもしれません。ブログ運営者の立場からすれば、特定のラベルのついた投稿だけではなく、全ての投稿をフィードで受け取って欲しいですしね。しかし、情報を受け取る側の立場では、特定のラベルだけのフィードがあった方が良いと思うことがあるかもしれません。
手順
前置きが少し長くなりましたが、肝心の方法です。やはり今回もテンプレートにほんの少しのコードを追加します。Bloggerのテンプレートに特有のコードも含みますが、基本はTumblrの時と同じです。Bloggerのヘルプにあるように、"http://ブログ名.blogspot.com/feeds/posts/default/-/ラベル名"からフィードを取得できるので、それをテンプレートの然るべき場所に挿入するだけです。
バックアップ
先ずはバックアップ。Bloggerのテンプレートを編集する前には必ずやっておいたほうが良いでしょう。Bloggerの管理画面のテンプレートページから現在使用中のテンプレートをダウンロードできます。ダウンロードが済んだら、[HTMLの編集]ボタンをクリックして、いよいよテンプレートを編集します。
Blogger管理画面のテンプレート・ページ
オートディスカバリーを使用
ウェブ・ブラウザのRSSボタンからフィードの存在を知らせます。
オートディスカバリーを利用することで、ウェブ・ブラウザのRSSボタンからフィードの存在を知らせることができるようになります。多分<head>
タグ内ならどこでもいいと思いますが、私は<b:include data='blog' name='all-head-content'/>
の次に、下のコードを挿入しました。AtomとRSSの両方を表示する例です。
- <b:if cond='data:blog.searchLabel'>
- <link expr:href='data:blog.homepageUrl + "feeds/posts/default/-/" + data:blog.searchLabel' expr:title='data:blog.pageTitle + " - Atom"' rel='alternate' type='application/atom+xml'/>
- <link expr:href='data:blog.homepageUrl + "feeds/posts/default/-/" + data:blog.searchLabel + "?alt=rss"' expr:title='data:blog.pageTitle + " - RSS"' rel='alternate' type='application/rss+xml'/>
- </b:if>
ページ内にリンクを表示
当サイトではラベルのページにRSSアイコンを表示するようにしてみました。
<b:includable>
でHTMLのコードを作成し、<b:include>
で表示したい場所に挿入という手順で表示できると思います。ここでは、RSSフィードの文字リンクを表示する例をご紹介します。
テンプレートのHTML編集画面で"ウィジェットのテンプレートを展開"にチェックを入れてから作業開始です。
先ずは、<b:widget id='Blog1' locked='false' title='ブログの投稿' type='Blog'>
から</b:widget>
の間(例えば</b:widget>
の上あたり)に、下のような<b:includable>
を作成します。
- <b:includable id='label-feed'>
- <div id='label-feed'>
- <a expr:href='data:blog.homepageUrl + "feeds/posts/default/-/" + data:blog.searchLabel + "?alt=rss"' expr:title='data:postLabelsLabel + " " + data:blog.searchLabel + " (RSS)"'><data:blog.searchLabel/> (RSS)</a>
- </div>
- </b:includable>
次に、上で作成した<b:includable>
コードを表示したいところに、<b:include>
を挿入します。例えば、"ラベル LABEL NAME の投稿を表示しています。 "というメッセージの上にリンクを表示したい場合には、<b:include data='top' name='status-message'/>
の上に次のコードを挿入します。
- <b:if cond='data:blog.searchLabel'><b:include data='top' name='label-feed'/></b:if>
*もしも誤っているところや改善すべきところがありましたら、教えていただければ幸いです。
0 件のコメント:
コメントを投稿