45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

Atom/RSSフィードにウェブページを追加する簡単な方法

コメント
0件
トラックバック
0件

フィードにウェブページを追加する場合、大抵はMTEntriesタグ以下の構造をMTPage*タグで再現する事になると思います。
それが一番手間だと思いますが、私の方法ではMTPage*タグを使いません。
あ、でもMTPagesタグは使いますよ。

Atomフィードの例

複雑な方法ではないので編集前は省略して、編集後のテンプレートソースです。

<$MTHTTPContentType type="application/atom+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title><$MTBlogName 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="<$MTLink template="feed_recent"$>" />
    <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>
<MTIf tag="BlogDescription">
    <subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle>
</MTIf>
    <generator uri="http://www.sixapart.com/movabletype/"><$MTProductName version="1"$></generator>
<MTSetVarTemplate name="entry_block">
    <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>
    <MTIf tag="EntryAuthorURL">
            <uri><$MTEntryAuthorURL encode_xml="1"$></uri>
    </MTIf>
        </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>
</MTSetVarTemplate>
<MTEntries lastn="15">
    <$MTGetVar name="entry_block"$>
</MTEntries>
<MTPages lastn="15">
    <$MTGetVar name="entry_block"$>
</MTPages>
</feed>

解説

この方法のポイントはMTSetVarTemplateタグです。
entry要素を変数化した事によってブログ記事とウェブページの両方を同じ型で出力できるのです。

MTPagesタグの使い方が不思議に思える方は拙記事のMTPagesタグ中でMTEntry*タグが動作するを参照して下さい。

RSS 2.0フィードの例

簡単な方法なので不要とも思いましたが、念のためにRSS 2.0フィードの編集例です。

<$MTHTTPContentType type="application/rss+xml"$><?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/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
<MTSetVarTemplate name="item_block">
        <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"$></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>
</MTSetVarTemplate>
<MTEntries lastn="15">
    <$MTGetVar name="item_block"$>
</MTEntries>
<MTPages lastn="15">
    <$MTGetVar name="item_block"$>
</MTPages>
    </channel>
</rss>

コメント[0]

コメントはまだありません。

コメント投稿フォーム

コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。

コメント投稿フォーム

トラックバック[0]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは