カテゴリ一覧を使って、「まとめ読みする」というページを作ってみました。
今回、日時をいじっているのは目次ページだけで、小説は一般的な執筆順に投稿しています。とうぜん、ブログの常識から言えば新しい記事(最終章)ほど上に来るはずです。
が、ものすごいチカラワザを行使して、章の頭から一気に読める形に並べなおしてみました。(笑)
こんな感じ▼
http://blog.livedoor.jp/htmldwarf/archives/cat_1247149.html
チカラワザの正体はJavascriptです。
カテゴリ別アーカイブのHTMLテンプレートの中身はこんなんなってます。(変更したところだけ抜粋)
<script><!--
Titles = new Array();
IDs = new Array();
i = 0;
<CategorizedArticlesLoop>
Titles[i] = '<$ArticleTitle ESCAPE$>';
IDs[i] = '<$ArticleId$>';
i++;
</CategorizedArticlesLoop>
-->
</script>
<CategorizedArticlesLoop>
<div id="<$ArticleId$>" style="display:none"><$ArticleBody$></div>
</CategorizedArticlesLoop>
<div class="blog">
<script><!--
Titles = Titles.reverse();
IDs = IDs.reverse();
t = 0;
while ( t < Titles.length) {
document.write('<div class="blogbody">');
document.write('<h2 class="date">' + Titles[t] + '</h2>');
document.write('<div class="main"><div class="document">' + document.getElementById(IDs[t]).innerHTML + '<br clear="all"></div></div>');
document.write('</div>');
t++;
}
--></script>
要するにですね、タイトルと記事IDを配列に突っ込んで、記事内容は一度非表示の形でidつけて保存して、全部終わったところでおもむろにタイトルとIDの配列をひっくり返し、実際とは逆の順になるように書き出しているわけです。
データ量が2倍になるのであんまりオススメできませんが。まあこういうやりかたもあるということで。
このままだとjavascriptオフのとき何にも表示されないのですが、<noscript>をちゃんと使えば逆順だけど読める状態にはなります。
(このエントリ書きながら気がついてしまったんですが、記事内容($ArticleBody$)をざっくりテンプレートから削除して、タイトルだけこの方法で昇順表示させれば、カテゴリ別ページを目次にすることが可能なのでは。はうっ。まあjavascriptはブラウザ依存になって怖いのでやめときましょうってことで!)