カテゴリー別RSSの設置(MT3.3)

カテゴリー別のRSSを設置しました。

まず、インデックステンプレートから、「RSS 2.0 Index」の中身をそのままコピーしておきます。

例えば、こんな感じになってますよね。(RSS 2.0 Index)

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">
<channel>
<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>
<language><$MTBlogLanguage ietf="1"$></language>
<copyright>Copyright <$MTDate format="%Y"$></copyright>
<lastBuildDate><MTEntries lastn="1"><$MTEntryDate format_name="rfc822"$></MTEntries></lastBuildDate>
<generator>http://www.sixapart.com/movabletype/?v=<$MTVersion$></generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>

<MTEntries lastn="15">
<item>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<description><$MTEntryBody encode_xml="1" convert_breaks="0"$></description>
<link><$MTEntryPermalink encode_xml="1"$></link>
<guid><$MTEntryPermalink encode_xml="1"$></guid>
<category><$MTEntryCategory remove_html="1" encode_xml="1"$></category>
<pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
</item>
</MTEntries>
</channel>
</rss>


次に、「テンプレート」>「アーカイブ」タブにて、『テンプレートの新規作成』をします。

その中に上記のテンプレートを貼付け、保存します。
名前は「Category Archive RSS 2.0 Index」とでもしておきましょう。

今回、カテゴリー別ということで、少々変更を加えてみました。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">
<channel>
<title><$MTBlogName remove_html="1" encode_xml="1"$>: Archives ' <$MTCategoryLabel remove_html="1" encode_xml="1"$> '</title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>
<language><$MTBlogLanguage ietf="1"$></language>
<copyright>Copyright <$MTDate format="%Y"$></copyright>
<lastBuildDate><MTEntries lastn="1"><$MTEntryDate format_name="rfc822"$></MTEntries></lastBuildDate>
<generator>http://www.sixapart.com/movabletype/?v=<$MTVersion$></generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>

<MTEntries lastn="15">
<item>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<description><$MTEntryBody encode_xml="1" convert_breaks="0"$></description>
<link><$MTEntryPermalink encode_xml="1"$></link>
<guid><$MTEntryPermalink encode_xml="1"$></guid>
<category><$MTEntryCategory remove_html="1" encode_xml="1"$></category>
<pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
</item>
</MTEntries>
</channel>
</rss>


青文字の部分が変更した部分です。


つぎにアーカイブのマッピングを行います。

「設定」>「公開」タブに、アーカイブ・マッピングがあります。

そこで「マッピングを新規作成」をクリックします。

アーカイブの種類・・・・「カテゴリー」
テンプレート・・・・先ほど作成した「Category Archive RSS 2.0 Index」

上のように選択し、「追加」をクリックします。

するとこんな感じになるかと思います。


出力フォーマットですが、私の場合、カテゴリーアーカイブを、

cat_<$MTCategoryID$>/index.php

のように設定していますので、RSSの方も同じように設定しました。


cat_<$MTCategoryID$>/index.xml


そして、カテゴリーアーカイブのテンプレートに、RSSへのリンクを作成します。

<a title="このカテゴリのRSS" href="<$MTBlogArchiveURL$>cat_<$MTCategoryID$>/index.xml">RSS feed of This Category</a>

という感じです。


なお、メタデータとして、<head>~</head>にもRSS情報として埋め込んでおきます。


<link rel="alternate" type="application/rss+xml" title="RSS 2.0 of This Category" href="<$MTBlogArchiveURL$>cat_<$MTCategoryID$>/index.xml" />


これでカテゴリーアーカイブをリビルドすれば完了です。