📃
【Movable Type】記事一覧をRSSフィードとして出力する
概要
記事の一覧をRSSフィードとして出力するコードです。RSSのバージョンは2.0。
以下のRSSフィードを出力します。
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>RSSフィードのタイトル</title>
<description>RSSフィードの説明文</description>
<link>RSSフィードを配信するサイトのURL</link>
<item>
<title>タイトル</title>
<description>概要</description>
<link>URL</link>
<pubDate>日付</pubDate>
</item>
<item>
<title>タイトル</title>
<description>概要</description>
<link>URL</link>
<pubDate>日付</pubDate>
</item>
.
.
.
</channel>
</rss>
上記の出力について、MTでの値は以下を出力しています。
-
channel
- RSSフィードのタイトル:サイト名
- RSSフィードの説明文:サイトのRSSフィードである旨
- RSSフィードを配信するサイトのURL:サイトURL
-
item
- タイトル:記事タイトル(ウェブページ・コンテンツタイプのタイトル該当フィールド / 以下同)
- 概要:記事本文
- URL:記事パーマリンク
- 日付:記事公開日付(書式はRFC822フォーマット)
コード
item
内のtitle
とdescription
にencode_xml="1"
モディファイア、pubDate
にformat_name="rfc822"
モディファイアをそれぞれ付与します。
詳細は以下公式リファレンスを参照ください。
MTEntriesで出力する
<mt:Entries lastn="10">
<mt:EntriesHeader>
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><$mt:WebsiteName$></title>
<description><$mt:WebsiteName$>のRSSフィード</description>
<link><$mt:WebsiteURL$></link>
</mt:EntriesHeader>
<item>
<title><$mt:EntryTitle encode_xml="1"$></title>
<description><$mt:EntryBody encode_xml="1"$></description>
<link><$mt:EntryPermalink$></link>
<pubDate><$mt:EntryDate format_name="rfc822"$></pubDate>
</item>
<mt:EntriesFooter>
</channel>
</rss>
</mt:EntriesFooter>
</mt:Entries>
MTPagesで出力する
<mt:Pages lastn="10">
<mt:PagesHeader>
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><$mt:WebsiteName$></title>
<description><$mt:WebsiteName$>のRSSフィード</description>
<link><$mt:WebsiteURL$></link>
</mt:PagesHeader>
<item>
<title><$mt:PageTitle encode_xml="1"$></title>
<description><$mt:PageBody encode_xml="1"$></description>
<link><$mt:PagePermalink$></link>
<pubDate><$mt:PageDate format_name="rfc822"$></pubDate>
</item>
<mt:PagesFooter>
</channel>
</rss>
</mt:PagesFooter>
</mt:Pages>
MTContentsで出力する
描きコンテンツタイプの設定を行っている想定の出力です。
- コンテンツタイプ名:新着情報
- コンテンツフィールド
- タイトル(テキスト)
- 概要(埋め込みテキスト)
<mt:Contents content_type="新着情報" limit="10">
<mt:ContentsHeader>
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><$mt:WebsiteName$></title>
<description><$mt:WebsiteName$>のRSSフィード</description>
<link><$mt:WebsiteURL$></link>
</mt:ContentsHeader>
<item>
<title><mt:ContentField content_field="タイトル"><$mt:ContentFieldValue encode_xml="1"$></mt:ContentField></title>
<description><mt:ContentField content_field="概要"><$mt:ContentFieldValue encode_xml="1"$></mt:ContentField></description>
<link><$mt:ContentPermalink$></link>
<pubDate><$mt:ContentDate format_name="rfc822"$></pubDate>
</item>
<mt:ContentsFooter>
</channel>
</rss>
</mt:ContentsFooter>
</mt:Contents>
上記それぞれのコードはXMLファイル出力時にMTタグ記述部分が空行で出力されるので、気になる場合はcompress-modifierプラグインを利用するなどして空行を削除してください。
以上です。
Discussion