以前、jsRSS++というライブラリ?で「指定したRSSを拾ってきて表示させる」といったことをやったことがあります。
今回はこれを使って、MovableTypeで再構築時に特定カテゴリのRSS用xmlを生成して、それをjsRSS++を使って自動取得するという方法を取りました。
MovableTypeで特定カテゴリのRSSを生成する
RSS用のテンプレートを下記の手順で修正しました。
最新記事のフィードテンプレートを複製する。
複製した最新記事のフィードテンプレートの名前を変更する。例:カテゴリ別フィード(ガンプラ)
出力ファイル名を任意のものに変更する。例:gunpla.xml
コードの変更
コードを見渡すと下記のような記述があるので<mt:Entries lastn="15">
RSS出力したいカテゴリ名を指定すればよいみたい。
<mt:Entries lastn="15" category="ガンプラ">
複数のカテゴリを設定する場合は下記のようにorで区切ればよいみたいです。キーワードとorの間に半角スペースを入れるの忘れないこと。下記のような感じで指定します。キーワード[半角ペース]or[半角ペース]キーワード[半角ペース]or[半角ペース]キーワード
<mt:Entries lastn="15" category="Figuration - ガンプラ or MG - ガンプラ or HG - ガンプラ or RG - ガンプラ or その他プラモ">
これだけだとjsRSS側で何も表示されなかったのでxmlテンプレートをもう少しだけ修正しました。
修正前
・
<entry>
<title><$mt:EntryTitle remove_html="1" encode_xml="1"$></title>
・
<published><$mt:EntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
・
</entry>
・
修正後
・
<item>
<title><$mt:EntryTitle remove_html="1" encode_xml="1"$></title>
・
<pubDate><$mt:EntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></pubDate>
・
</item>
・
entry→item、published→pubDateにそれぞれ修正しています。
これで再構築してgunpla.xmlを確認すると、指定したカテゴリのエントリーのみが抽出されていました。
jsRSSの設定
過去設定したときの備忘録があったのでそれを参照しました。 備忘録どおりやれば問題なく動きそうなものですがなぜかうまく動きません。そんなときはjsRSS.cgiのパスを変更するといいようです。こうすると【なぜか直る】らしいです。変更前
#!/usr/bin/perl
変更後
#!/usr/bin/perl --これでブログのRSSを定期的に拾ってきて表示してくれるようになりました。あとはCSSで見た目を変えてあげればよさそうですね。