ライブドアブログ( @livedoorblog ) でトップページにだけ要素を配置する為のテンプレート術
ちょっと必要だったので調べてみた。
ライブドアブログを使い始めて二年が経ち、いろんなところで使っていることは
[Updated11/17 13:30]:ライブドアブログ(@livedoorBlog)の良い点/悪い点をまとめてみた
ここにも書いたとおりだ。
今回紹介するのは、
トップページにだけ何かを表示したい
というニーズを如何に満たすかという話。
ライブドアブログはテンプレートをいじることが出来る。
僕のブログ自体は、無料のテンプレートを自分でいじって改造している。
ブログテンプレートには、いくつかのタグが使えるようになっており、それを使って実現する。
さて、今回トップページにだけ何かを表示したいということを考えたのだけれど、それというのは
「トップページだけ、ナビゲーションを変えて表示したい」
という単純なニーズから来ている。
トップページは、サイトの紹介を入れてみたり、カテゴリーの説明してみたりとか、そういう事をやりたかったのね。
で、それを実現するにはどうしたら良いかというと。
直球で、それに該当する条件分岐のタグはない。
だから、組み合わせで作るのでした。
まず、使うタグは二種類
- IndexArticlesLoop
- UnlessNextArticle
1のタグはなにしているかというと、Indexページ(つまり、個別の記事ページではなく、トップページや、ページャーでリンクした次のページ等の一覧ページ)を表示しますよという意思表示だ。
これを入れることで、そのページで、ブログ設定>基本設定>トップページの表示件数で設定した数だけループする。
2のタグは何をするかというと、1のタグの中で正常に動作する。(多分そのはず)
ライブドアブログでは、IfをUnlessにすると、ifnotと同義ということで、先程のタグリストを見てみると
IfNextArticleは:次に記事が存在すれば処理
であるので、UnlessNextArticleにすると:次に記事が存在しなければ処理
であるので、UnlessNextArticleにすると:次に記事が存在しなければ処理
という意味になる。
つまり、一番最新の記事が表示されている場合なら処理。だ。
結論としては、
<IndexArticlesLoop><UnlessNextArticle>ここにトップページにだけ表示したい要素を配置する</UnlessNextArticle></IndexArticlesLoop>
と書いてやれば、トップページにのみ要素を配置することができるようになる。
個人的には、
- 各カテゴリーのトップページの場合
- 各タグのトップページの場合
に要素を表示できるようなタグがあるととても助かるのだけど、出来ないっぽいですね。
もしかして、上のタグを書きこめばいけるかなぁ・・・?と思ってやってみたんだけど、このタグは純粋にアイテムがあるかどうかで判断しているらしく、カテゴリ・タグとは別でしたとさ。
あなたのお役に立てば!!