エントリー記事

MTのRSSにバナー広告を表示する

MT4

小ネタ。RSSリーダーで見ている人には、現在CSS Nite in FUKUSHIMAの広告が表示されています。PCでは見えません。

というわけで、MTのRSSに広告を表示するという、ややうっとうしいTIPSです(^^;

rss.xmlはこんな感じ


<$MTHTTPContentType type="application/rss+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0"><MTSetVar name="count" value="1" />
    <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="15">
        <item>
            <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
            <description><![CDATA[<MTIf name="count" eq="1"><p style="text-align:center;"><a href="http://cssnite.net6.or.jp/2008/"><img src="http://cssnite.net6.or.jp/2008/img/sponsor/banner/fukushima-468x60.jpg" width="468" height="60" alt="CSS Nite in FUKUSHIMA" /></a></p></MTIf><$MTEntryBody$><mt:ifnonempty tag="EntryMore" convert_breaks="0"><p style="text-align:right;"><a href="<mt:EntryPermalink encode_xml="1">">続きを読む→</a></p></mt:ifnonempty>]]></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>
		<MTSetVar name="count" op="+" value="1" />
        </MTEntries>
    </channel>
</rss>

キモは <MTEntries>〜</MTEntries> の部分

MTSetVarで変数countの初期値を1とし、MTEntriesの繰り返しの中で、変数countの値が1だったらバナーを表示して、変数countに+1します。それだけです。簡単すぎてすみません。

あ、本当のキモは<MTEntries>じゃなくて、<description>のCDATAの部分かも知れませんが(^^;

応用として

  • 奇数ならAの広告
  • 偶数ならBの広告
  • 3がつく数字でアホになる

といったことにも使えます(使わないか)。カテゴリを調べて、それにマッチした広告を表示するいう小賢しいこともできそうですね。でも、あんまり広告を表示するとうっとうしいので注意。