derric.org

MovableType4にRSSフィードを追加する

| トラックバック(1)
MT4.2以降はRSSテンプレートが削除されたようで、
デフォルトではAtomフィード用のテンプレートしかありません。

そこで、RSS 2.0とRSS 1.0用のテンプレートを追加します。

RSS 2.0用のテンプレート

以下のサイトを参考にしました。
>> Movable Type 4.2以降でRSS 2.0のフィードを配信する

追加するのは「インデックステンプレート」
名前は「RSS 2.0」、出力ファイル名は「rss20.xml」、テンプレートの種類は「最新記事のフィード (feed_recent)」、公開は「スタティック」とし、以下のコードを張り付けて保存します。

<$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>
    <MTEntries lastn="10">
    <item>
      <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
      <description><$MTEntryBody words="200" 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>
    </MTEntries>
  </channel>
</rss>

赤い部分の2ヶ所は少し変更を加えました。
lastnは配信する記事の数です。
wordsは1つの記事で表示する文字数です。これを指定しないと全文表示されてしまうので。

RSS 1.0用のテンプレート

RSS 1.0用のテンプレート以下を参考にしました。
>> MT4にしてから新着記事がmixiで更新されない件

名前は「RSS 1.0」、出力ファイル名は「rss10.xml」、テンプレートの種類は「最新記事のフィード (feed_recent)」、公開は「スタティック」とし、以下のコードを張り付けて保存します。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<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:admin="http://webns.net/mvcb/"
 xmlns:cc="http://web.resource.org/cc/"
 xmlns="http://purl.org/rss/1.0/"
>
  <channel rdf:about="<$MTBlogURL$>">
    <title><$MTBlogName encode_xml="1"$></title>
    <link><$MTBlogURL$></link>
    <description><$MTBlogDescription encode_xml="1"$></description>
    <dc:language><$MTDefaultLanguage$></dc:language>
    <dc:creator></dc:creator>
    <dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></MTEntries></dc:date>
    <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" />
    <MTBlogIfCCLicense>
    <cc:license rdf:resource="<$MTBlogCCLicenseURL$>" />
    </MTBlogIfCCLicense>
    <items>
      <rdf:Seq><MTEntries lastn="10">
      <rdf:li rdf:resource="<$MTEntryPermalink encode_xml="1"$>" />
      </MTEntries></rdf:Seq>
    </items>
  </channel>
  <MTEntries lastn="10">
  <item rdf:about="<$MTEntryPermalink encode_xml="1"$>">
    <title><$MTEntryTitle encode_xml="1"$></title>
    <link><$MTEntryPermalink encode_xml="1"$></link>
    <description><$MTEntryExcerpt words="200" encode_xml="1"$></description>
    <dc:subject><$MTEntryCategory encode_xml="1"$></dc:subject>
    <dc:creator><$MTEntryAuthor encode_xml="1"$></dc:creator>
    <dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S" language="en"$><$MTBlogTimezone$></dc:date>
  </item>
  </MTEntries>
</rdf:RDF>

こちらも2ヶ所、同様の変更を加えます。

Atom用のテンプレート

MT4は、デフォルトだと全文を配信するようになっているので、
Atom用のテンプレートも、文字数を制限するように変更します。

<$mt:HTTPContentType type="application/atom+xml"$>
<?xml version="1.0" encoding="<$mt:PublishCharset$>"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><$mt:BlogName remove_html="1" encode_xml="1"$></title>
  <link rel="alternate" type="text/html" href="<$mt:BlogURL encode_xml="1"$>" />
  <link rel="self" type="application/atom+xml" href="<$mt:Link template="feed_recent"$>" />
  <id>tag:<$mt:BlogHost exclude_port="1" encode_xml="1"$>,<$mt:TemplateCreatedOn format="%Y-%m-%d"$>:<$mt:BlogRelativeURL encode_xml="1"$>/<$mt:BlogID$></id>
  <updated><mt:Entries lastn="1"><$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></mt:Entries></updated>
  <mt:If tag="BlogDescription"><subtitle><$mt:BlogDescription remove_html="1" encode_xml="1"$></subtitle></mt:If>
  <generator uri="http://www.sixapart.com/movabletype/"><$mt:ProductName version="1"$></generator>
  <mt:Entries lastn="10">
  <entry>
    <title><$mt:EntryTitle remove_html="1" encode_xml="1"$></title>
    <link rel="alternate" type="text/html" href="<$mt:EntryPermalink encode_xml="1"$>" />
    <id><$mt:EntryAtomID$></id>
    <published><$mt:EntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
    <updated><$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>
    <summary><$mt:EntryExcerpt remove_html="1" encode_xml="1"$></summary>
    <author>
      <name><$mt:EntryAuthorDisplayName encode_xml="1"$></name>
      <mt:If tag="EntryAuthorURL"><uri><$mt:EntryAuthorURL encode_xml="1"$></uri></mt:If>
    </author>
    <mt:EntryCategories>
      <category term="<$mt:CategoryLabel encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#category" />
    </mt:EntryCategories>
    <mt:EntryIfTagged><mt:EntryTags>
      <category term="<$mt:TagName normalize="1" encode_xml="1"$>" label="<$mt:TagName encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#tag" />
    </mt:EntryTags></mt:EntryIfTagged>
    <content type="html" xml:lang="<$mt:BlogLanguage ietf="1"$>" xml:base="<$mt:BlogURL encode_xml="1"$>">
      <$mt:EntryBody words="200" encode_xml="1"$>
      <$mt:EntryMore encode_xml="1"$>
    </content>
  </entry>
  </mt:Entries>
</feed>

あとは、購読ウィジェットにRSS 2.0とRSS 1.0へのリンクを追加し、HTMLヘッダーテンプレートに以下の記述を追加します。

<link rel="alternate" type="application/rss+xml" title="Recent Entries(RSS 2.0)" href="http://www.blog.derric.org/rss20.xml" />
<link rel="alternate" type="application/rss+xml" title="Recent Entries(RSS 1.0)" href="http://www.blog.derric.org/rss10.xml" />

出来上がりは以下。
>> Atomフィード
>> RSS 2.0フィード
>> RSS 1.0フィード

以上です。

トラックバック(1)

トラックバックURL: http://tech.derric.org/mt/mt/mt-tb.cgi/8

ちょっとした交流がしたいなと思い始めて、各種ブログランキングへの登録を行っていま... 続きを読む

ページトップへ