特定カテゴリのみのatom.xml
サイト全てではなく、特定のひとつのカテゴリの更新情報を、専用のatom.xmlで出力するサンプルです。
手順1:Atom(カテゴリ専用)テンプレートを作成する
まず、管理ページで、「デザイン」→「テンプレート」と進み、インデックステンプレートページにて「Atom」をクリックして、テンプレートコードをコピーします。
次に「インデックステンプレートを作成」をクリックし、カテゴリ専用のAtomテンプレートを作成します。名前は「Atom(xxxカテゴリ専用)」、出力ファイル名は「atom_xxx.xml」などとします。xxxは任意の文字列です。出力ファイル名には使用文字を半角英数のみとし、日本語や全角カナなどを使用しないでください。
以下コードは、デフォルトのAtomテンプレートを改造した、「Movable Type」というカテゴリ専用のAtomを、atom_mt4.xmlというファイル名で出力する場合のサンプルコードです。
変更箇所は、基本的には「MTEntriesで出力する際のカテゴリ」、「表示ディスクリプション」、「atom_mt4.xmlのリンク先」の3箇所です。
<$MTHTTPContentType type="application/atom+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<MTSetVar name="TargetCat" value="Movable Type">
<MTSetVarBlock name="CatDescription">(<MTGetVar name="TargetCat">カテゴリ専用)</MTSetVarBlock>
<MTSetVarBlock name="CatXmlLink"><MTBlogURL>atom_mt4.xml</MTSetVarBlock>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><$MTBlogName remove_html="1" encode_xml="1"$><MTGetVar name="CatDescription" remove_html="1" encode_xml="1"></title>
<link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" />
<link rel="self" type="application/atom+xml" href="<MTGetVar name="CatXmlLink" remove_html="1" encode_xml="1">" />
<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTTemplateCreatedOn format="%Y-%m-%d"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>
<updated><MTEntries lastn="1"><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></MTEntries></updated>
<MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty>
<generator uri="http://www.sixapart.com/movabletype/"><$MTProductName version="1"$></generator>
<MTEntries category="$TargetCat" lastn="15">
<entry>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<link rel="alternate" type="text/html" href="<$MTEntryPermalink encode_xml="1"$>" />
<id><$MTEntryAtomID$></id>
<published><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
<updated><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>
<summary><$MTEntryExcerpt remove_html="1" encode_xml="1"$></summary>
<author>
<name><$MTEntryAuthorDisplayName encode_xml="1"$></name>
<MTIfNonEmpty tag="MTEntryAuthorURL"><uri><$MTEntryAuthorURL encode_xml="1"$></uri></MTIfNonEmpty>
</author>
<MTEntryCategories>
<category term="<$MTCategoryLabel encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#category" />
</MTEntryCategories>
<MTEntryIfTagged><MTEntryTags><category term="<$MTTagName normalize="1" encode_xml="1"$>" label="<$MTTagName encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#tag" />
</MTEntryTags></MTEntryIfTagged>
<content type="html" xml:lang="<$MTBlogLanguage ietf="1"$>" xml:base="<$MTBlogURL encode_xml="1"$>">
<$MTEntryBody encode_xml="1"$>
<$MTEntryMore encode_xml="1"$>
</content>
</entry>
</MTEntries>
</feed>
手順2:ヘッダーへ宣言文を作成する
「デザイン」→「テンプレート」と進み、テンプレートモジュールページにて「ヘッダー」をクリックして、以下のようなコードを書き足します。
以下コードはインデックスページであれば宣言が追加されるようにした例です。MTIfの部分を書き換えて、当該カテゴリページでのみ出力としてもいいでしょう。
<MTIf name="main_index">
<link rel="alternate" type="application/atom+xml" title="Atom" href="<MTBlogURL>atom_mt4.xml" />
</MTIf>
- ページ先頭へ
- 前のエントリ: 素ノーマルRSSテンプレート
- 次のエントリ: 特定カテゴリのみのrss.xml
- カテゴリ:Feed関連サンプル