過去記事を RSS 配信することを考える。過去記事の投稿年を現在の年に書き換えることで実装する。
気に入ったブログは,RSS リーダーで読むのが便利である。更新した記事だけが読めるからである。したがって,過去に投稿した記事を読むことはできない。
私自身が他のブログを読む姿勢を冷静に観察してみると,「これは面白そうだ」と思ったブログは RSS リーダーに登録して購読するようになる。さらにもっとファンになったブログは,過去ログを読むことがある。しかし,過去ログ全部を読むことはない。1日では全部読めないし,どこまで読んだかをブックマークしておくほどマメではないからだ。
過去記事が RSS 配信できれば,途中から読み始めてくれた人もすべての記事を読めるのではないか。このアイデアの実装を考える。これなら,1年すればマメでない人もすべての記事を読むことができる。そんな奇特な人がいるかどうか,実際にニーズがあるかどうかは分からないのだが…。
環境は Movable Type 2.661 + 日本語パッチである。使用するプラグインは,MT Extensions: MTTagInvoke 1.0,Six Apart ProNet - Plugin Directory - OnThisDay である。過去記事を RSS 配信するポイントは,過去記事の「年」を「今年」に書き換えることである。
RSS フィードには,RSS 1.0, RSS 2.0, Atom 1.0 などの形式がある。ここでは RSS 2.0 のテンプレートを例として使う。RSS 1.0 や Atom 1.0 も同様の方法で作ることができる。
以下の前半は RSS 2.0 のデフォルトテンプレートの MTEntries 部分である (2.6x Default Templates)。前後は省略してある。後半もほとんど同じだが,強調部分が違っている。前半で最近の記事15本を,後半で過去記事を,出力するようになっている。拙作の Onclick 属性削除プラグインで記事中のリンクにある onclick 属性を削っている。
最初の MTTagInvoke で,最新の記事の年を取得し,値を thisyear という変数に代入している。これを過去記事の年の部分に置くのである。正確に言えば「今年」ではなく「最新記事の投稿年」が使われることになる。
記事のタイトルには,これが最新の記事ではないことが分かるように,「過去記事 2006:」などの正しい投稿年をつけている。
MTOnThisDay で,去年の今日や一昨年の今日の記事を取り出している。そして,その記事の投稿日部分 dc:date の年を,先ほどの thisyear 変数の値で置き換えている。つまり,投稿年だけウソをついていることになる。
過去記事は,再構築した日と「月日」が同じものだけが配信されることになる。したがって,再構築は毎日した方がよい。自動的に1日に一度再構築するには,Linux なら cron で行う方法がある (nlog(n): cron でインデックスを再構築)。
若干心配なのは,RSS リーダーとしては Bloglines でしか動作確認をしていないということである。
このサイトでは MTTagInvoke を他にも使っていて,nlog(n): MTTagInvoke を MTBlogTimes に使う,nlog(n): 月別アーカイブへのリンクをもっと nDialy 風に などがある。MTOnThisDay はトップページで使っている (nlog(n): おかげさまで1周年 - 去年の今日を表示する)。
2010年8月7日追記:
日付を誤魔化さないで新着記事にする方法が分かりました (nlog(n): 過去記事の RSS 再配信を新着記事にするには)。
Master Archive Index
Total Entry Count: 1957