当該記事の所属するカテゴリの最近の記事一覧を表示する

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] PHP も JavaScript も使わずに、Movable Type のテンプレートと SSI を駆使することで、個別記事にカテゴリ別最新記事一覧を差し込む方法があることを知り、採用してみました。
[キーワード] MovableType,TypePad,カスタマイズ

« ソーシャルブックマーク管理ツール bookey 0.07b 版 | トップページ | ココログが TypePad 1.6 ベースに移行したのに伴って当方が実施した措置 »

2006.03.28

当該記事の所属するカテゴリの最近の記事一覧を表示する

ブログの個別記事(Movable Type や TypePad でいうところの Index Archives)に、その記事の所属するカテゴリの最近の記事一覧を表示したいという需要はそれなりにあるものと思われます。

過去にもいろんな人がいろんなアイデアを発表していましたが、PHP 必須、perl の CPAN モジュールのほげほげが必須といったように、サーバ側を比較的自由にいじれる環境でしか使えないものがほとんどでした。ココログでは使えない方法ばかりであきらめかけていたのですが、最近になって、JavaScript を使うアイデアが出現しました。

Goodpic の方法(カテゴリ別の記事一覧をJSONの配列として生成しておいて、読み込む)は、「がちゃがちゃエントリ」で使っている手法の延長線上にあるので、ココログでも採用可能だと思われます。drk7.jp の方法も、そっくりそのままココログで使えると思います。問題があるとしたら、JavaScript が使える環境の人にしかカテゴリ内最新記事一覧が表示されないこと。

いずれ時間ができたら上記の2つの方法をそれぞれ試してみようと思っていたのですが、いつしか日々は過ぎていきました。そして、ほとんど偶然ですが、昨日、「Movable Type で「記事と同じカテゴリ内の最近の記事」を表示する。」という記事を発見しました(RSSリーダで見かけて気になった「Firefox でココログを印刷しようとすると本文が1ページ目しか表示されない」という記事を読もうと「JRF のソフトウェア Tips」というブログに立ち寄ったところ、件の記事を発見しました)。

Movable Type で「記事と同じカテゴリ内の最近の記事」で示された方法は、カテゴリ別の最近の記事一覧を静的に生成しておき、SSI (Server Side Include)で読み込もうというものです。この方法なら JavaScript が使える/使えないに関係なく、どの閲覧者(検索エンジンの放つボットも含む)に、カテゴリ内最新記事一覧を示すことができます。

幸いなことに、ココログ(プロ)では SSI が使えます。一も二もなく、この方法を採用することにしました。

categoryList
カテゴリ内最新記事一覧の表示例

当「観測気球」では、以下のように Template を書き換えることで対応しました。

まず、以下の内容で、新しいインデックステンプレートを作り、Recent List というテンプレート名、recent-lists.shtml という出力ファイルとして保存、反映します。「インデックステンプレートを公開する際、自動的にこのテンプレートも公開する」はチェックが入ったままにしておきます。(「JRF のソフトウェア Tips」で提示されているものから、ほんの少しだけいじりました。記事のタイトルにマウスカーソルを持っていくと、その記事の概要を tooltip として表示するようにしてみたんですが、いかがでしょう?)

<a id="recent-lists"></a>
<MTCategories>
<!--#if expr="$CATEGORY_IDS = /,<$MTCategoryID$>,/" -->
<MTBlogIfArchives>
<h2>「<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>」カテゴリ内の最近の記事</h2>
<MTEntries lastn="5">
<div class="recent-lists-content">
<div class="recent-lists-title"><$MTEntryDate format="%Y-%m-%d"$> <a
href="<$MTEntryPermalink$>" title="<$MTEntryExcerpt$>"><$MTEntryTitle$></a></div>
</div>
</MTEntries>
</MTBlogIfArchives>
<!--#endif -->
</MTCategories>
<!--#if expr="$CATEGORY_IDS = /,TOP,/" -->
<h2>「<a href="<$MTBlogURL$>"><$MTBlogName$></a>」内の最近の記事</h2>
<MTEntries lastn="5">
<div class="recent-lists-content">
<div class="recent-lists-title"><$MTEntryDate format="%Y-%m-%d"$> <a
href="<$MTEntryPermalink$>" title="<$MTEntryExcerpt$>"><$MTEntryTitle$></a></div>
</div>
</MTEntries>
<!--#endif -->

次に、Individual Archives テンプレートに手を入れます。

まず、冒頭付近。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--#set var="CATEGORY_IDS"
 value=",<MTEntryCategories><$MTCategoryID$>,</MTEntryCategories>" -->

<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">

そして、<MTEntryIfAllowPings> の直前に SSI を使って、カテゴリ別の最新の記事一覧を読み込みます。

<div style="clear: both;">            ← 薄い字で示した部分は「観測気球」独自カスタマイズ部分ですので、他のブログに適用するときは無視して(読み飛ばしてください) 
<hr style="width: 80%; color: #999; text-align: center;" />
<div class="entry-recent-lists">
<!--#include virtual="/<$MTBlogDirname$>/recent-lists.shtml" -->
</div>
</div>

<div style="clear: both;">
<$MTInclude module="ad"$>
</div>

<MTEntryIfAllowPings>
<h2><a id="trackback"></a>トラックバック</h2>
<p>この記事のトラックバックURL:<br /><$MTEntryTrackbackLink$></p>

あとは、「個別バックナンバーのみ」を再構築すれば、完成です。以後は、新しい記事を投稿するたびに、自動的に、カテゴリ別最新記事一覧が生成・更新されます。

この方法は TypePad だけではなく、Movable Type でも使えると思います。SSI が使えることが前提ではありますが。

投稿者: tsupo 2006.03.28 午前 01:40 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


ウェブログ・ココログ関連」カテゴリ内の最近の記事

品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/6737/9292855

この記事へのトラックバック一覧です: 当該記事の所属するカテゴリの最近の記事一覧を表示する:

» Re: 当該記事の所属するカテゴリの最近の記事一覧を表示する from [牛] うしぶろぐ
当該記事の所属するカテゴリの最近の記事一覧を表示するより Mappy先生 続きを読む

受信: 2006.03.30 午前 07:56

» 保険営業しながら、サイトを管理するのって大変なものですね from Sucre-web
保険営業のかたわら、「Sucre-web」を管理している私。ニュースレターのための記事を書くのが大変なので、毎日書き溜めていこうというのがサイト立ち上げのきっかけでした。 続きを読む

受信: 2006.05.14 午後 10:29

» 個別記事と同じカテゴリーの最新記事一覧を表示する、Typepad編 from ブランドって何だぁ?
なんのことかというと、下記の写真のように個別記事のフッターの下に該当記事のカテゴリーの最近の記事を5つリストアップさせるようにしました。 検索エンジンとかから個別記事にきた訪問者になるべく多くのコン... 続きを読む

受信: 2007.02.17 午後 03:17

コメント


なんか、全カテゴリの最新記事が表示されてしまいます…
いただいたタグをそのまま貼っているのですが…何故でしょう…もしお分かりになられるようであればぜひアドバイスお願いします…

投稿者: いちる (2009.04.08 午後 10:03)


いちるさんのところは TypePad ですよね。ひょっとすると、TypePad とココログとで、微妙にテンプレートタグの仕様が違うのかもしれません。たぶん、少しいじるだけで TypePad でも使えるとは思うのですが、私自身は TypePad のアカウントは持ってないため、試してみることができません。

一方、すでに、ココログ自体に、「この記事の所属するカテゴリの最近の記事一覧」を表示する機能が付いていまして、もはや、この記事で紹介しているやり方をわざわざ使う必要はなくなっています。TypePad にも、そういう機能がすでにあるかもしれません。一度、確認してみてください。

投稿者: tsupo (2009.04.14 午前 04:52)


なるほど! 確認してみます! ありがとうございます!
僕の使っているTypepad.comは「次のページ」「前のページ」ができたり、現在使っているテンプレート上での公開前記事確認ができたりと、いろいろ良くなっています。ココログも早くそうなるといいですね^_^

投稿者: いちる (2009.04.19 午後 02:35)

コメントを書く




※イタズラ防止のため、メールアドレスを入力しないと投稿できません。

次からのコメント入力の手間を省くために、名前やメールアドレスをcookieに記憶しますか?


URL を入力すると、その URL にリンクがはられます。
なお、メールアドレスは公開されません。ご安心ください。


ワード

ニッセン

fujisan.co.jp

楽天市場