RSSを任意のカテゴリで出力する~MovableType

電脳備忘録
量産限定にこのブログのプラモ制作に関する記事を表示させようと考えました。

以前、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で見た目を変えてあげればよさそうですね。

広告

ブログの維持費に充てるでございます・・・。