Movable Type で「記事と同じカテゴリ内の最近の記事」を表示する。
しかし、Apache 1.2 以降の SSI には if 文があり、その中で正規表現(というか部分文字列のサーチ = strstr)が使えることを知り、ココログプロで使える「新しいインデックステンプレート」と組み合わせれば、可能なはずだと思い致った。
問題は、このサイトではカテゴリ名に '/' を使っており、ラベルでカテゴリを指定すると正規表現の '/.../' とぶつかってしまうため、MTCategoryID を使いたいところだが、MTCategoryID は Category Archive 内などでそのまま使えない。今のところ Indivisual Archive に表示するだけなのであまり関係ないが、Archive 内などでサイドバーとして読み込もうとすると不具合が出るようにはしたくない。
しばしとまどったが《MovableType Tips: MovableType Tips Archives》にある方法でそれが解決できることがわかった。
基本的には、まず、表示したい(複数の)カテゴリの MTCategoryID を ',' で連結した文字列を作り、それを SSI の変数 CATEGORY_IDS に代入する。
次に、インデックステンプレートで、それぞれのカテゴリごとに if 文を付け、そのカテゴリの MTCategoryID (の前後に','を付けたもの)が、変数 CATEGORY_IDS 内に含まれていれば表示し、そうでなければ表示しないようにした。
|
このサイトでは 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"> <head> |
また、次のように更新情報のあとに include 文を足した。
<p class="posted">...</p> <div class="entry-recent-lists"> <!--#include virtual="/<$MTBlogDirname$>/recent-lists.shtml" --> </div> <MTEntryIfAllowPings>
|
本当は拡張子を .shtml じゃなく .inc にしたかったのだが、ココログは .inc にするとコントロールパネルのファイルから見えなくなるという「仕様」なので、しかたなく .shtml にした。
Recent Lists というテンプレートを作成した。次のようなファイルである。
<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$>"><$MTEntryTitle$></a></div> <!-- <div class="recent-lists-body"> <$MTEntryExcerpt$> </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$>"><$MTEntryTitle$></a></div> <!-- <div class="recent-lists-body"> <$MTEntryExcerpt$> </div> --> </div> </MTEntries> <!--#endif --> |
はじめ Excerpt も表示されるよう書いてみたが、うっとうしかったのでコメントアウトしている。
また、CATEGORY_IDS に ',TOP,' を含めれば、そのブログ全体の最近の記事もリストされる。これを同じサイトの別のブログのサイドバーにでも入れようかと思ったのだが、これまた冗長になるのでやめた。……と思ったが《雑記》だけを他のブログのページに入れ、《雑記》には他のブログを入れることにした。
あとは CSS で適当に整えれば完成。
| ■ |
更新
|
| 更新: | 06/02/22,06/03/02 |
| 初公開: | 2006年02月22日 03:00:10 |
| 最新版: | 2006年03月30日 14:35:37 |
2006-02-22 17:46:31 (JST) in ウェブログ・ココログ関連 | 固定リンク | コメント (2) | トラックバック (2)
「ウェブログ・ココログ関連」カテゴリ内の最近の記事
2006-03-27 Firefox でココログを印刷しようとすると本文が1ページ目しか表示されない
2006-04-24 ココログプロで Google サイトマップインデックスを作る
2006-03-30 Movable Type で「記事と同じカテゴリ内の最近の記事」を表示する。
2006-02-21 ココログでスクリプトなどからファイルを削除する
批評や挨拶のためのネットコミュニティ
- はてなブックマーク(って何?)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/8779385
他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。
» JRF のソフトウェア Tips:Movable Type で「記事と同じカテゴリ内の最近の記事」を表示する。 (この記事)
» ココログや Movable Type のシステムと奮戦中 from JRF の私見:雑記
MTEntries では sort_by と last_n を同時に使うことができず、 MTArchiveList では offset を使うことができないようだ。 また、XML-RPC で更新情報として TIMESTAMP を書き込んだとき、月をまたぐと、(週別の)個別アーカイブの位置が変わるため、Permalink が変更されてしまうようだ。 ... 続きを読む
受信: 2006-02-24 01:29:24 (JST)
» 当該記事の所属するカテゴリの最近の記事一覧を表示する from 観測気球
PHP も JavaScript も使わずに、Movable Type のテンプレートと SSI を駆使することで、個別記事にカテゴリ別最新記事一覧を差し込む方法があることを知り、採用してみました。 続きを読む
受信: 2006-03-28 01:42:21 (JST)
コメント
なお、現在のココログではデフォルトでこれと同等のことができるようになっています。この記事はココログ以外の方向けになったということですね。
投稿 JRF | 2007-07-15 18:14:14 (JST)
よぼらぼ
情色おんな秘図
襦袢の裾を乱れさせ、喘ぐ女の艶姿、悶えながらも男の精を吸い尽くす―江戸の世を舞台に繰り広げられる、淫らで妖しき五つの
http://www.8568985.com/mmgjkin/
http://www.8568985.com/garegky/
投稿 よぼらぼ | 2007-11-02 21:48:08 (JST)