mtde.info

Movable Type Developers Express

特定カテゴリのみのrss.xml

2008年2月18日 00:42 | Writer: apstar | 記事本文

サイト全てではなく、特定のひとつのカテゴリの更新情報を、専用のrss.xmlで出力するサンプルです。

手順1:RSS(カテゴリ専用)テンプレートを作成する

まず、管理ページで、「デザイン」→「テンプレート」と進み、インデックステンプレートページにて「RSS」をクリックして、テンプレートコードをコピーします。

次に「インデックステンプレートを作成」をクリックし、カテゴリ専用のRSSテンプレートを作成します。名前は「RSS(xxxカテゴリ専用)」、出力ファイル名は「rss_xxx.xml」などとします。xxxは任意の文字列です。出力ファイル名には使用文字を半角英数のみとし、日本語や全角カナなどを使用しないでください。

以下コードは、デフォルトのRSSテンプレートを改造した、「Movable Type」というカテゴリ専用のRSSを、atom_mt4.xmlというファイル名で出力する場合のサンプルコードです。

変更箇所は、基本的には「MTEntriesで出力する際のカテゴリ」、「表示ディスクリプション」の2箇所です。

<$MTHTTPContentType type="application/rss+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">

    <MTSetVar name="TargetCat" value="Movable Type">
    <MTSetVarBlock name="CatDescription">(<MTGetVar name="TargetCat">カテゴリ専用)</MTSetVarBlock>
    
    <channel>
        <title><$MTBlogName remove_html="1" encode_xml="1"$><MTGetVar name="CatDescription" remove_html="1" encode_xml="1"></title>
        <link><$MTBlogURL$></link>
        <description><$MTBlogDescription remove_html="1" encode_xml="1"$><MTGetVar name="CatDescription" remove_html="1" encode_xml="1"></description>
        <language><$MTBlogLanguage ietf="1"$></language>
        <copyright>Copyright <$MTDate format="%Y"$></copyright>
        <lastBuildDate><MTEntries category="$TargetCat" lastn="1"><$MTEntryDate format_name="rfc822"$></MTEntries></lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        <MTEntries category="$TargetCat" lastn="15">
        <item>
            <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
            <description><$MTEntryBody encode_xml="1"$></description>
            <link><$MTEntryPermalink encode_xml="1"$></link>
            <guid><$MTEntryPermalink encode_xml="1"$></guid>
            <MTEntryCategories>
                <category domain="http://www.sixapart.com/ns/types#category"><$MTCategoryLabel remove_html="1" encode_xml="1" cutfirstchar="3"$></category>
            </MTEntryCategories>
            <MTEntryIfTagged><MTEntryTags>
                <category domain="http://www.sixapart.com/ns/types#tag"><$MTTagName remove_html="1" encode_xml="1"$></category>
            </MTEntryTags></MTEntryIfTagged>
            <pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
        </item>
        </MTEntries>
    </channel>
</rss>

手順2:ヘッダーへ宣言文を作成する

「デザイン」→「テンプレート」と進み、テンプレートモジュールページにて「ヘッダー」をクリックして、以下のようなコードを書き足します。

以下コードはインデックスページであれば宣言が追加されるようにした例です。MTIfの部分を書き換えて、当該カテゴリページでのみ出力としてもいいでしょう。

<MTIf name="main_index">
   <link rel="alternate" type="application/rss+xml" title="RSS" href="<MTBlogURL>rss_mt4.xml" />
</MTIf>

Feed関連サンプル

2008 mtde.info