MT5でRSS1.0(RDF)を出力するウェブサイトテンプレート

公開

Movable Type 5でRSS1.0(RDF)を出力するウェブサイトテンプレートを作成してみました。このテンプレートを作成することで、ウェブサイトに属する複数のブログの情報を一つにまとめたRSSの配信が可能になります。

テンプレートの概要

blog_idsモディファイアに"children"が指定してあり、ウェブサイト内の全てのブログから最新15件の記事データ(タイトル・概要)を出力します。channel要素内のtitle要素やlink要素は、MT5で新しく追加された「mt:WebsiteName」「mt:WebsiteURL」を使用して出力しています。

使用の際は、ウェブサイト配下のブログが更新された時に、今回追加したテンプレートも再構築されるようにする設定が必要です。「ウェブサイトのプラグイン設定」画面を開き、「MultiBlog 2.1」プラグインの設定で再構築トリガーを追加してください。"ウェブサイト内のすべてのブログ"を選択し、"ブログ記事とウェブページの保存時にインデックスを再構築"するよう設定すればOKです。
MultiBlog 2.1プラグイン設定画面の例

RSS1.0(RDF)テンプレート例

subject要素の内容をブログ名にするなど、お好みに合わせてカスタマイズしてみてください。

<?xml version="1.0" encoding="<$mt:PublishCharset$>"?>
<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="<$mt:WebsiteURL$>">
<title><$mt:WebsiteName encode_xml="1"$></title>
<link><$mt:WebsiteURL encode_xml="1"$></link>
<description><$mt:WebsiteDescription encode_xml="1"$></description>
<dc:language><$mt:WebsiteLanguage$></dc:language>
<dc:creator></dc:creator>
<dc:date><$mt:Date format="%Y-%m-%dT%H:%M:%S" language="en"$><$mt:WebsiteTimezone$></dc:date>
<items>
<rdf:Seq><mt:Entries blog_ids="children" lastn="15">
<rdf:li rdf:resource="<$mt:EntryPermalink encode_xml="1"$>" />
</mt:Entries></rdf:Seq>
</items>
</channel>
<mt:Entries blog_ids="children" lastn="15">
<item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
<title><$mt:EntryTitle encode_xml="1"$></title>
<link><$mt:EntryPermalink encode_xml="1"$></link>
<mt:if tag="EntryExcerpt"><description><$mt:EntryExcerpt encode_xml="1"$></description>
<mt:Else><description><$mt:EntryBody words="100" encode_xml="1"$></description></mt:if>
<dc:subject><$mt:EntryCategory encode_xml="1"$></dc:subject>
<dc:creator><$mt:EntryAuthorDisplayName encode_xml="1"$></dc:creator>
<dc:date><$mt:EntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$mt:BlogTimezone$></dc:date>
</item>
</mt:Entries>
</rdf:RDF>