カテゴリー別RSS生成、方針変更して成功

| トラックバック(1)

カテゴリー別RSS生成に関する不具合(What's Newカテゴリーのrdfに他のカテゴリーの情報が混ざる)は解消できなかった。そこで、@smate.NETさんのカテゴリ別 RSS 作成を参考にやり直してみた。#Blogさんのやり方は、インデックスファイルとして.rdfを生成する方法だったが、こうすると、カテゴリーごとに「○○カテゴリーのRSS Indexファイル」を作ってやる必要がある。また、<$MTCategories category="○○" lastn="1"$>と指定してやっても、そのカテゴリーに、複数カテゴリーにまたがるエントリーがあると、別カテゴリーの情報がrdfファイルに紛れ込んでくることになる(Movablet Typeのバグなのだろうか?少なくとも能書きどおりの動きではないように思える)。このやり方は「複数カテゴリーをもつエントリーはない」かつ、「特定のカテゴリーについてのみRSSフィードを行いたい」場合に良い方法、と考えるべきだろう。
さて、@smate.NETさんのやりかたであるが、category archive templateを追加して、category archiveのヴァリエーションとしてrdfファイルを生成する、というもの。
> Template の中身は、先程コピーした RSS 1.0 Index と同じでよいので、ペーストして、保存(SAVE)します。
とあるが、これだとせっかくカテゴリー別につくったrdfファイルがすべて同じtitleやdescriptionを持つことになるため、channel/title,link,descriptionのあたりで以下の様に工夫している。
修正前

<title><$MTBlogName encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription encode_xml="1"$></description>

修正後
<title><$MTBlogName encode_xml="1"$> : <$MTArchiveCategory encode_xml="1"$></title>
<link><$MTBlogArchiveURL$>cat_<$MTArchiveCategory dirify="1">.php</link>
<description><$MTCategoryDescription encode_xml="1"$></description>

なお、linkを<$MTArchiveLink$>にしていないのは何故かというと(やってみていただくとわかるが)<$MTArchiveLink$>だと、category archiveのURLではなく、生成されるカテゴリー別rdfファイルのURLが出力されるためである。

今回、Movable Typeのテンプレートタグについては、「BloggerとMovable Typeではじめる ウェブログ入門」が大変役に立った。Movable Typeの導入時の参考に買った本が、こんなタイミングで役に立つとは思わなかった。<つまり初心者の域を脱していないな。

アーカイブ

Link