user icon

baserCMSのfeedプラグインで既存フィードを合成したフィードを作成

baserCMSでリニューアルした弊社サイトですが、このスタッフブログはWordPressのまま残しました。

そうなるとサイトのフィードはbaserCMSで運用している新着情報とWordPressで運用しているスタッフブログの両方の情報が入っていて欲しい。「両方のデータベースからデータさらってきてフィードを作るプログラムでも書くかなー」などと調査したりしていたのですが、気づきました。

「feedプラグインで合成表示は出来るんだからRSSのフォーマットで出せばいいんじゃね?」

てなわけで、現在弊社のフィード(RSS 2.0) http://www.lancard.com/rss はfeedプラグインでbaserCMSのBlogのフィードとWordPressのフィードを合成して作成しています。

どうやったかといいますと、
feedプラグインで合成したフィードを作成。テンプレートについては後ほど。

フィードのキャッシュ期間ですが、baserCMSのBlogについては更新時にフィードのキャッシュはクリアされるはずなのでとりあえず1日(※2013.7.27追記:公開日時の予約をすると公開時にはキャッシュクリアされないので1時間に変更しました)、外部のスタッフブログについては長くキャッシュされるとまずいので1分にしています。

RSS 2.0 用 のレイアウト作成(ただし、WordPressに合わせて古い項目を追加してます)。
$this->cacheAction = false とすることでサーバーキャッシュは無効化。

テーマ名/layouts/rss2.php

cacheAction = false;
echo "\n";
?>


Lancard.com
http://www.lancard.com/
Lancard.com 新着情報とスタッフブログのRSS(RSS 2.0)
feed(3); ?>


ITEM作成用に作成したfeedのテンプレートはこんな感じ。
テーマ名/feed/rss2item.php




 $item): ?>

<![CDATA[<?php echo $item['title']['value']; ?>]]>


name; ?>]]>

]]>
]]>



そして固定ページ管理でフィード用のページを作成。

layout = 'rss2'; ?>

以上です。もっといい方法がある気も。

Facebooktwitterlinkedintumblrmail

タグ: ,

名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)