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