2016年11月10日木曜日

ラベルごとの最新記事の実装方針を考える ~Blogger テンプレートを作るよ! (27)~

こんんちはー!

今回は、トップページに表示させる予定の、ラベルごとの最新記事をどうやって実装しようか考えてみることにしました。

(前回:『カラーテーマに合わせて変更した結果 ~Blogger テンプレートを作るよ! (26)~』)


実装方針の案

方法1.フィードガジェットを編集

Blogger が提供しているガジェットの一つに、「フィード」 というものがあります。Blogger は RSS や Atom で直近数百件の記事の一部または全体を配信することができます。このガジェットを使うと、その配信データを取得することが可能になり、動的にウェブページの中に記事を埋め込むことができるようになります。

参考:『Blogger の フィード URL 構成 と パラメタ― まとめ』 galife
< https://garafu.blogspot.jp/2013/07/blogger-url.html >

フィードの URL を知っていれば、簡単に最新記事を取得して表示することが可能です。ただし、ガジェットのテンプレートはロード中のメッセージを表示する部分しか書かれておらず、後から javascript を使って内容を差し替えているようです。

今回は、ガジェットには 「一覧はこちら >」 という風にラベル検索のリンクを追加したいと思っています。ラベル検索の URL はフィードガジェットのデータにはないので、リンク先 URL はフィード URL から自動生成することになります。

しかし、これをガジェットのテンプレートの書き換えで行ってしまうとガジェットを追加するたびにテンプレートを書き換えなくてはならず、非常に面倒くさいことになります。結局、それを避けるためには javascript が必要になるわけです。

方法2.ラベルガジェット + javascript でラベルごとのフィード取得

カンですが、フィードガジェットではどのみち javascript を使っているので、似たようなことは自前でも再現できそうな気がします。ラベル名からフィードURLを自動生成し、フィードガジェットと同様の方法を使って HTML に組み込みます。

フィードガジェットを使う場合に比べたメリットは、ラベルガジェットの設定で最新記事を表示したいラベルを簡単に選択できる点です。

ラベルガジェットのラベルが並ぶ順番は変えられないようなので、順番を指定したければ1ラベル1ガジェットという形でガジェットを追加することになります。

方法3.ラベルガジェット + javascript で全体のフィード取得

一風変わったものを思いつきました。ラベルガジェットを使って最新記事を取得したいラベルを設定し、ラベルを限定せずにブログ全体のフィードを取得して、その中で登録したラベルに一致する記事があったら最新記事として載せるというものです。

この方法の面白いところは、記事の新しい順にラベルを並べることができ、長い間投稿されていないラベルは記事が省略され、フィードを取得する回数を一回に抑えることができることです。

新しい記事をメインに見てもらいたいブログであれば、一番新しい記事のラベルが一番先頭に立つというのは悪くない選択肢だと思います。

長いこと投稿されていないラベルはラベル名だけ表示することで、古い情報をトップページに載せない効果があります。

悩みはじめ

正直なところ、テンプレート製作者としてはフィードガジェットを使って好きなフィード URL を入力してもらうのが一番簡単です。多少 javascript で手を加えるにしても。

ただ、ラベル一覧に最新記事の表示機能を付けたものという意味では、改造するならラベルガジェットの方が適切じゃないかとも考えてしまいます。

むーむーむー。どうしよう~。





0 件のコメント :

コメントを投稿