MTのRSS2.0テンプレートに「続きを読む」を表示する
- 2008年6月13日 13:53
- Category : MovableType
- Tags :feed, MovableType, RSS, tips
最近RSSフィードのテンプレートを少し改造したのでメモしておきます。
MTのRSSテンプレートは、そのまま使うと、記事を書いたとき「本文」のエリアに書いた部分しか表示されないので、続きの有無によって「この記事には追記があります」とか、MTのトップページに出ているような「続きを読む」が表示されないので、MTIfあたりを使って、エントリに追記があるときだけ「この記事の全文を読む」というリンクが表示されるようにしてみました。
以下手順メモ。
RSS2.0用のテンプレートの記述を修正
MTのテンプレート一覧画面にあるインデックステンプレートの中から「RSS」を選んで編集します。 15行目あたり(MT4.xの場合)に
<description><$MTEntryBody encode_xml="1"$></description>
とあるので、ここに、追記がある場合のタグを書き足します。
MTIfの記述
<description>と</description>の間が本文として配信されるので、MTIfを使って、「追記があったとき、リンク先を表示」のコードを書きます。
<description><$MTEntryBody encode_xml="1"$></description>
の部分を、
<description><$MTEntryBody encode_xml="1"$>
<MTIfNonEmpty tag="EntryMore">
<![CDATA[
<a href="<$MTEntryPermalink$>">この記事の全文を読む</a>
]]>
</MTIfNonEmpty>
</description>
と書き換えます。
追記が無い場合は、MTIfNonEmptyの部分は出力されません。
参考:
MTIfNonEmpty | テンプレートタグリファレンス
MTで条件分岐MTIfNonEmpty:特定タグが空白かどうかチェックし分岐する - WEBデザイン BLOG
上手く行っていれば(いっているはずだ!)、このエントリはRSSリーダー等で読んだ場合、[ この記事の全文を読む ]が表示されているはずです。
Atomの場合
<![CDATA[
と
]]>
で囲めば、HTMLタグを書いてもOKなのか? と思ったのですが、ATOMのテンプレートにも同じ方法をやったら、上手く行きませんでした‥‥。
"floatingdays: Atomフィードの本文(?)にHTMLを記述する方法"によると、
summaryに属性typeを入れて、その値にxhtmlまたはhtmlを指定するらしい。
とのことなのだけど、この部分の詳細について、まだ調べ切れてないので、とりあえずRSS2.0の改造方法だけでpostしておきます。
参考:
Trackback URL :
- location
- Sapporo, Japan
- job
- Webデザイナー、コーダー
- 趣味
- 写真と猫
札幌でフリーランスのWebデザイナーをしています。このブログは、主に日常の出来事とWeb制作に関するメモを書いています。



