MTのRSS2.0テンプレートに「続きを読む」を表示する

最近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しておきます。

参考:

« ダメ日。 | TOP | note : 20080613(making photo-log) »

コメント

トラックバック

Trackback URL :

このサイトについて

管理者
location
Sapporo, Japan
job
Webデザイナー、コーダー
趣味
写真と猫

札幌でフリーランスのWebデザイナーをしています。このブログは、主に日常の出来事とWeb制作に関するメモを書いています。

>>read more


Twitterプロフィールはこちら