Kinowiki の RSS プラグインに、無理矢理 RSS 2.0 を吐かせる
Google Webmaster Tools からサイトマップを登録することができますが、登録できるのは身近なところでは RSS 2.0 か Atom 0.3。
そこでRSS 2.0が欲しかったんですが、ところがKinoWikiのpluginフォルダには RSS10 (RSS 1.0 のみ対応)しかない。というわけで自作しました。うまく検索すれば似たようなプラグイン(or もっとましなやつ)をつくった人はいそうですが、どうも、うまく検索できなかったみたいなんで…。
とはいえPHPコードはRSS10プラグインからいただきました。フォルダごとコピペして、ファイル名(とファイル名をハードコーディングしてある部分と)とテンプレートを変更しただけ。なのでdescription(普通は本文かその抜粋を入れる)が空です。ひどいですね、ええ。ちなみに使用法は (当然ながら)RSS10とほとんど同じ。
RSS 2.0 の仕様はhttp://hail2u.net/documents/rss20notes.htmlを参考にしました、が、適当に当てはめ直しただけですのであっちのURLとこっちのURLを取り違えてる!みたいな可能性もあります。テンプレートはだいぶちがくなるので、それだけは以下に示しておきます。
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>{$sitename}</title> <link>{$baseurl}</link> <description>{$sitename} RecentChanges</description> <language>ja</language> <pubDate>{$list[0].timestamp | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</pubDate> <lastBuildDate>{$list[0].timestamp | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> {foreach from=$list key=key item=item} <item> <title>{$list[$key].pagename}</title> <link>{$list[$key].url}</link> <description></description> <pubDate>{$list[$key].timestamp | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</pubDate> <guid>{$list[$key].url}</guid> </item> {/foreach} </channel> </rss>
つづく。