カテゴリ毎にRSSフィードを生成する

Posted by
ぴろり
Posted at
2007/02/08 23:18
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
MovableType カテゴリ

 特定の分野に特化した話題を扱う専門的なサイトと比べると、個人が主宰するような一般的なブログサイトでは記事の話題が多岐に渡ります。このサイトでも主となる MovableType に関する話題以外にも、管理人の割とどうでもいい(?)日記が綴られていたりしています。気になるサイトを購読するために有用な RSS ですが、このような理由からサイト全体として配信される RSS には話題の統一性がありません。
 そこで、ビジタが気になる分野の新着記事のみチェックできるよう、記事カテゴリ毎に RSS フィードを生成するようにしてみました。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

概要

 MovableType では記事を"カテゴリ"という単位で括った目次ページ(カテゴリアーカイブ)を生成することができます。似通った話題の記事はカテゴリとして分類されますから、このカテゴリ単位で RSS を生成できれば目的には適いそうです。
 前回、個別の記事毎にRSSフィードを作成する時と同じように、新しくカテゴリアーカイブテンプレートを作って対応することにします。

カテゴリ・アーカイブ・テンプレート

 以下に Open MagicVox.net で使用しているテンプレートを示します。サイト全体で生成している RSS 用のテンプレートをコピーして、必要な箇所を数行書き換えただけです。<$BlogURL$><$BlogDescription$> については、 それぞれ<$MTCategoryArchiveLink$><$MTCategoryDescription$>に置き換えましたが、それ以外の行は全く同じになっています。
 特に注意する点は、サイト全体の更新日時を記述する部分で、そのカテゴリに属する最新の記事の更新時間を出力するようにしてあります。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="<$MTBlogURL encode_html="1"$>pub/rss10.xsl" type="text/xsl"?>

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
<MTBlogIfCCLicense> xmlns:cc="http://web.resource.org/cc/"</MTBlogIfCCLicense>
 xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="<$MTBlogURL$>">

<title><$MTCategoryLabel pmhc="" encode_xml="1" jcode="utf8"$> - <$MTBlogName encode_xml="1" jcode="utf8"$></title>
<link><$MTCategoryArchiveLink$>?rss</link>
<description><$MTCategoryDescription encode_xml="1" jcode="utf8"$></description>
<dc:language>ja</dc:language>
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></MTEntries></dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" />
<MTBlogIfCCLicense><cc:license rdf:resource="<$MTBlogCCLicenseURL$>" /></MTBlogIfCCLicense>
<image rdf:resource="<$MTBlogURL$>banner2.png" />

<items><rdf:Seq>
<MTEntries lastn="10">
<rdf:li rdf:resource="<$MTEntryPermalink encode_xml="1"$>" />
</MTEntries></rdf:Seq>
</items>

</channel>

<image rdf:about="<$MTBlogURL$>banner2.png">
<url><$MTBlogURL$>banner2.png</url>
<title><$MTBlogName encode_xml="1" jcode="utf8"$></title>
<link><$MTBlogURL$></link>
</image>

<MTEntries lastn="10">
<item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
<title><$MTEntryTitle encode_xml="1" jcode="utf8"$></title>
<link><$MTEntryPermalink encode_xml="1"$>?rss</link>
<description>
<$MTEntryBody trim_to="480" remove_html="1" encode_xml="1" jcode="utf8"$>
<MTKeyValues><MTIfNonEmpty tag="EntryMore"> ... 続きがあります(<$MTEntryContents byte="1" fig_comma="1"$>)</MTIfNonEmpty></MTKeyValues>
</description>
<dc:subject><$MTEntryCategory encode_xml="1" jcode="utf8" pmhc=""$></dc:subject>
<dc:creator><$MTEntryAuthorNickname encode_xml="1" jcode="utf8"$></dc:creator>
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></dc:date>
</item>
</MTEntries>

</rdf:RDF>

幾つかサードパーティ製のプラグイン用タグが使用されているので、お使いの環境に合わせて適宜修正してください。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  


この記事のアーカイブ

全ての記事 »
2007年
全てのカテゴリ »
MovableType
全てのタグ »
, , ,

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。