44 mcRSSlist Plugin

May 3, 2005. Tags: WordPress.

English page »

Description

RSS feedからitemへのlink listを生成するpluginです。はてなRSSなどのアグリゲータサービスを利用してblogrollを出力することもカンタンです。このサイトのサイドバーの「del.icio.us/matopc」や「matopc :: blogrolling」リスト、さらにdel.icio.usページantennaページ(はてなアンテナベース)をこのpluginで生成しています。

Specification

  • WordPress 1.5以降に対応。WordPress 2.9で動作確認。
  • エンジンとしてWordPress 1.5以降に含まれている/wp-includes/rss-functions.phpを使っています。Magpie RSS ベースなので機能的に申し分なく、さらにcacheはMySQL databaseに格納するようにhackされています。:grin:
  • RSS 0.92, 1.0, 2.0に対応
  • 取得するtag
    • channel - title, link, description
    • item - title, link, description, pubDate/dc:date, author/dc:creator
  • 日付のフォーマットはRFC 822形式 (Tue, 10 May 2005 13:19:24 +0000)とW3C/ISO8601形式 (2005-04-28T19:25:30+01:00) をtimestampに変換してリフォーマットすることが出来ます。
  • 最終的なlistの出力フォーマットはいくつか準備したものを設定で切り替えることにしました。もちろんplugin本体をいじればどんなフォーマットも可ですが。

Download version 0.4 (2006-01-08)

Version History

Known Issue

/wp-includes/rss-functions.phpのエラーハンドリングが不十分で、feedが壊れている場合などにphpエラーが出てしまう場合があります。コード修正で対応出来ますので、rss-functions.phpのエントリをご参照ください。
[3057] (changeset) - WordPress Trac - TracとしてWordPress側でrss-functions.phpが修正されたので、このエントリの修正は不要となります。
References:
[3057] (changeset) - WordPress Trac - Trac
#1446 (break when can't get RSS) - WordPress Trac - Trac

Install

  1. /wp-content/pluginに設置
  2. Plugins管理パネルでactivate

How to use it

このpluginはfunction mcRSSlist ()を追加します。

mcRSSlist ($feed_uri = '',
$num_items = 10,
$style = 0,
$ordered = false,
$show_channel_title = true,
$date_format = 'm/d H:i',
$before_channel_title = '<h2>',
$after_channel_title = '</h2>',
$mb_encoding = false);
mcRSSlist ('', 10, 0, 0, 1, 'm/d H:i', '<h2>', '</h2>', 0);
  • $feed_uri - RSS feedのURI
  • $num_items - 取得するitemの数、default = 10
  • $style - listの出力フォーマットを指定
  • $ordered (boolean) - <ul> (false)または<ol> (true)でwrapします。
  • $show_channel_title - trueで$before_channel_title (default '<h2>'), $after_channel_title (default '</h2>')でwrapされたfeed channelのtitleを出力します。
  • $date_format - 日付のフォーマットを指定します。phpのdate機能を参照してください。
  • $mb_encoding - feedが文字化けする場合、trueにしてみてください。PHPのmb_convert_encoding ()を使ってencodingを自動認識、WordPressのget_settings('blog_charset')で指定された文字コードに変換します。

Examples

ペベリンスキーズBLOG v.2 » mcRSSlist pluginとその利用。
Thanks!

このサイトのmainページ、サイドバーのblogrollは、はてなRSSサービスのfeedを取得しています。

<li>
<?php mcRSSlist ('http://r.hatena.ne.jp/matopc/rss', 15); ?>
</li>

カンタンでしょう?:grin:

同じくdel.icio.usページも。style 1を使っています。

<?php mcRSSlist ('http://del.icio.us/rss/matopc', 10, 1); ?>

Advanced Settings

Cacheの寿命

// cache age config in seconds, 60*60 means 1 hour
define('MAGPIE_CACHE_AGE', 60*60);

デフォルトは1時間です。cacheのデータはMySQL databaseのwp_optionsテーブルに格納されます。

Output Style

// switch list output style - YOU CAN EDIT HERE!
switch ($style) {
case 0: // default sidebar style
$RSSlist .= $itemTitle . '<br /> ' . $itemDate . ' by ' . $itemCreator;
break;
case 1: // del.icio.us style.
$RSSlist .= $itemTitle . ' - ' . $itemDescription . ' by ' . $itemCreator;
break;
case 2: // antenna style
$RSSlist .= $itemDate . " &raquo; " . $itemTitle;
break;
case 3: // your style - now simple
$RSSlist .= $itemTitle;
break;
} // end switch - STOP EDITING

$styleで指定するスタイルはここで定義しています。ここに出てくる変数、$itemTitle(リンク)、$itemDescription、$itemDate、$itemCreatorを使ってアウトプットスタイルを設定できます。

Acknowledgement

WordPress、Magpie RSS、RSS Fetched Link List plugin開発者の皆様に感謝します。

Projects top »

44 Responses to 'mcRSSlist Plugin' (RSS)

Trackbacks & Pingbacks (Trackback URI)

  1. Trackback by aoiro_blog - May 28, 2005 @ 11:48 am

    WordPress plugin:mcRSSlist Plugin

    欲しいと思ってたプラグインがリリースされたときは、ホント嬉しいものです。
    それがmcRSSlist Plugin
    イメージしてたプラグインと同じ。
    リリースされてるmatopcさんには、ホント感謝いた...

  2. Trackback by matopc :: computing - August 6, 2005 @ 12:39 am

    rss-functions.php

    自作プラグインmcRSSlistのバックエンド、/wp-includes/rss-functions.phpのエラーハンドリングを修正します。

    ...

  3. Pingback by tunakichi::blog » Blog Archive » はてなアンテナを読み込む - September 3, 2005 @ 9:35 pm

    [...] ここ [...]

  4. Pingback by matopc :: computing » Google Blog Search - September 15, 2005 @ 11:22 pm

    [...] とりあえずinbound linkの検索結果をmcRSSlist pluginで表示してみました。なんだがロボット系のクリッピングサイトが引っかかって微妙。。 [...]

  5. Pingback by MAET Blog » Blog Archive » mcRSSlist Plugin - October 24, 2005 @ 8:48 am

    [...] matopcさんが配布しているmcRSSlist Pluginを入れてdel.icio.usをサイドバーに表示してみた(こういうのをしたくてWordPressに移行したと言っても過言じゃない)。いい感じです。以下引用。 matopc :: computing » mcRSSlist Plugin RSS feedからitemへのlink listを生成するpluginです。はてなRSSなどのアグリゲータサービスを利用してblogrollを出力することもカンタンです。このサイトのサイドバーの「del.icio.us/matopc」や「matopc :: blogrolling」リスト、さらにdel.icio.usページ、antennaページ(はてなアンテナベース)をこのpluginで生成しています。 [...]

  6. Pingback by matopc :: computing » mcRSSlist Plugin - November 22, 2005 @ 11:48 pm

    [...] mcRSSlist Plugin May 3, 2005 @ 9:02 pm. Filed under: WordPress, Projects. Tags: wordpress, plugin,rss. [...]

  7. Trackback by MMRT daily life - December 6, 2005 @ 5:30 am

    [MM]mcRSSlist Plugin

  8. Trackback by ペベリンスキーズBLOG v.2 - July 19, 2006 @ 12:54 am

    mcRSSlist pluginとその利用。...

    matopc::computingさんにて、RSSからリンクリストを出力するWordpress用Plugin「mcRSSlist」を発見。このプラグインを使うことで、はてなアンテナ、はてなブックマーク、del.icio.us、BlogPeopleなどをWP......

  9. Trackback by 2chi::log - September 30, 2006 @ 5:27 am

    他サイトのRSSを自サイトに出力するWordpress Plugin...

    RSSを自サイトに簡単に表示するWordpress Pluginを入れてみた。
    RSS::NEWS::http://2chi.fourier.jp/rss_news/
    使ったwordpress pluginは、mcRSSlist plugin
    RSSアグリゲータ系は、今年になってから盛り上がった感が......

  10. Pingback by MAET Blog : mcRSSlist Plugin - October 9, 2006 @ 3:17 pm

    [...] matopcさんが配布しているmcRSSlist Pluginを入れてdel.icio.usをサイドバーに表示してみた(こういうのをしたくてWordPressに移行したと言っても過言じゃない)。いい感じです。以下引用。 matopc :: computing » mcRSSlist Plugin RSS feedからitemへのlink listを生成するpluginです。はてなRSSなどのアグリゲータサービスを利用してblogrollを出力することもカンタンです。このサイトのサイドバーの「del.icio.us/matopc」や「matopc :: blogrolling」リスト、さらにdel.icio.usページ、antennaページ(はてなアンテナベース)をこのpluginで生成しています。 [...]

  11. Pingback by matopc :: computing » WordPress 2.0.5 - November 3, 2006 @ 5:41 pm

    [...] あわただしい日々ですが、WordPress 2.0.5がリリースされたのでアップデートをしてみました。久しぶりだったので、一応ファイルは全部入れ替え。Themeとpluginは同じで、とりあえず動いているようです。mcRSSlistもOKみたいです。 [...]

  12. Pingback by YujiLog » RSS feedからitemへのlink listを生成するplugin - November 18, 2006 @ 5:26 pm

    [...] matopc :: computing » mcRSSlist Plugin RSS feedからitemへのlink listを生成するpluginです。はてなRSSなどのアグリゲータサービスを利用してblogrollを出力することもカンタンです。このサイトのサイドバーの「del.icio.us/matopc」や「matopc :: blogrolling」リスト、さらにdel.icio.usページ、antennaページ(はてなアンテナベース)をこのpluginで生成しています。 [...]

  13. Trackback by Tactual308.net - August 17, 2007 @ 6:37 pm

    はてなブックマークなどをWordPress内で表示するプラグイン「mcRSSlist」...

    はてなブックマークをWordPress内で個別ページに表示するプラグインはないかと探していた所、ペベリンスキーズBLOG v.2 - mcRSSlist pluginとその利用という記事を見つけました。
    このプラグイ.....

  14. Pingback by Satsukita Info 2007 Test Page » Blog Archive » mcRSSlistの導入 - October 12, 2007 @ 3:17 pm

    [...] matopc::computing 10 6月 07 | プラグイン [...]

  15. Pingback by links for 2008-01-21 - アルコ - January 22, 2008 @ 2:20 am

    [...] matopc :: computing » mcRSSlist Plugin (tags: wordpress plugin RSS) [...]

  16. Pingback by Qve [design communication] » Blog Archive » ページへRSS表示 - July 15, 2008 @ 2:15 pm

    [...] 前々からやりたかったんですが、WordPressテンプレートのタグでは思うようにいかず、RSS表示のプラグインを探していたところ、matopcさんの「mcRSSlist Plugin」にたどり着きました。 [...]

  17. Pingback by WordpressでRSSを使用したlink listを作成する方法 - Nakamori Report - March 27, 2009 @ 1:49 am

    [...]  ■matopc :: computing » mcRSSlist Plugin [...]

  18. Pingback by ●*FFXI PokoStyle*● - atpages+Wordpressについて - April 21, 2009 @ 3:30 am

    [...] in One SEO Pack 1.4.9 ◎Category Order 2.0.1 ◎Exec-PHP 4.9 ◎Google XML Sitemaps 3.1.2 ◎mcRSSlist 0.4 (20060108) ◎My Link Order 2.7a ◎PostPost 1.2.0 ◎Random Image 5.0 ◎Smart Update Pinger [...]

  19. Pingback by Shifftで使用しているWordPressのプラグイン | Shifft - Web Design & Development - May 15, 2009 @ 2:24 am

    [...] mcRSSlist Plugin [...]

  20. Pingback by WordPress情報 - RSS feed をリストで表示できるプラグイン「mcRSSlist Plugin」 - May 21, 2009 @ 12:55 pm

    [...] <ダウンロード> →matopc :: computing [...]

  21. Pingback by WP事業部 設立準備室 - mcRSSlist - October 6, 2009 @ 12:37 am

    [...] プラグインのサイトにしたがって、サイドバーの「テキスト」として <li> <?php mcRSSlist (’http://r.hatena.ne.jp/matopc/rss’, 15); ?> </li> と打ってみるも反応がない。 [...]

  22. Pingback by つぶやき以下 - mcRSSlist - January 27, 2010 @ 3:05 pm

    [...] プラグインのサイトにしたがって、サイドバーの「テキスト」として <li> <?php mcRSSlist (‘http://r.hatena.ne.jp/matopc/rss’, 15); ?> </li> と打ってみても反応なし。 [...]

Comments

  1. Comment by matopc - May 28, 2005 @ 8:01 pm

    見つけていただいて、ホントありがとうございます。 ->KOHAKUさん :grin:
    動作の確認や不具合など、なんでもお知らせいただければありがたいです。よろしくお願いします。:grin:

  2. Comment by kohaku - May 28, 2005 @ 11:51 pm

    こんにちは。
    現在は好調に動作してます。:grin:

  3. Comment by matopc - June 6, 2005 @ 12:44 pm

    Pluginつかっていただいてどうもありがとうございます。
    ChannelへのリンクでURIのquotationが欠けていたので修正しました(v0.1.3)。
    今後もよろしくおねがいいたします。

  4. Comment by sasagawa - July 29, 2005 @ 11:32 am

    こんにちは。
    mcRSSlist plugin、試させていただいていますsasagawaです。とても素晴らしいpluginを提供してくださって心から感謝しています。また先日は文字化けの件、対応ありがとうございました。TRUEに設定するのを忘れていました。文字化けは解消致しました!

    さて、もう一つ問題が起きていまして、アンテナのRSS取得の際に、サブディレクトリーを指定すると必ずエラーになってしまうのです。いろいろ試していますが、今のところ必ずそうなるようなので偶然ではないようです。例えば、以下は私のアンテナのurlですが、
    http://r.hatena.ne.jp/sasagawa/rss
    これを、
    http://r.hatena.ne.jp/sasagawa/inbox/rss
    として、mcRSSlistに設定すると、ブログ内ではエラーが発生してしまっている状況です。試しにmatopcさんのアンテナのurlでもinbox/rssとして試させていただいたのですが、エラーになりました。まだはっきりと確証があるわけではありませんが、現状のところご連絡させて頂きました。もし解決方法に思い当たることがありましたらコメントをお願い致します。それでは失礼致します。:wink:

  5. Comment by matopc - July 30, 2005 @ 12:57 am

    こんにちは。お使いいただいてどうも!
    文字化けは解決できたようで良かったです。:grin:

    >エラー
    Fatal error: Call to undefined function: error() in /.../rss-functions.php on line ...

    こんなエラーだと思うのですが、これははてなrssのサブフォルダ指定などにかかわらず、feedの内容が壊れている場合にxmlパースの途中で出ているようです。feedのエラーチェックとして完全ではないかもしれませんが、Feed Validatorなどで(feed item=購読中のコンテンツ)に依存してfeedが壊れている場合がないかチェックしてみて頂けないでしょうか?

    一方で、エラーの内容はrss-functions.phpで定義されているハズのerror () functionが未定義としてエラーになっているようです。このエラーはWordPressサポートフォーラムでも取り上げられていたのですが、結局はエラーハンドリングがうまく出来ていない訳なので、rss-functions.phpをいじるかプラグインの方でどうにかしてoverrideするか、と僕もちょっと考えていたところです。

    正しいxmlで生成されているfeedであればエラーは出ないハズなので、少々ご辛抱ください。。:wink:

    ->当面の対策法をアップしました。

  6. Comment by matopc - January 13, 2006 @ 9:55 pm

    > エラーの内容はrss-functions.phpで定義されているハズのerror () functionが未定義としてエラーになっているようです。

    WordPress 2.0で修正されましたので、mcRSSlist 0.4をお使いの場合、他のファイルの修正は不要になりました。:grin:

  7. Comment by べんじゃみん - January 29, 2006 @ 9:32 pm

    初めまして。
    どうも文字化けが解消できないのでご相談させてください。
    サイトの charset が UTF-8 の場合には問題ないのですが、EUC の場合ですと、日本語が文字化けしちゃいます。
    試しに、mb_convert_encoding の部分を、auto から EUC-JP (5箇所とも)に変更してみたのですが、状況は改善されないようです。
    ならばと思い、強引に $charset を UTF-8 に。
    ファイルの属性も併せて、UTF-8 にしてみましたが、やっぱりダメでした。
    もし、改善策などがありましたら、ご教授頂けると幸いです。
    よろしくお願い致します。:oops:

  8. Comment by matopc - January 31, 2006 @ 2:45 pm

    初めまして。お試し頂いてありがとうございます。

    確認ですが、Feedの文字コードがUTF-8で表示させるサイトがEUC-JPということでよろしいでしょうか。もう一点、pluginの設定
    mcRSSlist ('feed_url', 10, 0, 0, 1, 'm/d H:i', '<h2>', '</h2>', 0);
    の最後のフラグがmb_convert_encoding用なのですが、1またはtrueを指定頂いていますでしょうか。

    なかなか難問かもしれません。。:???:

  9. Comment by Penta - August 20, 2006 @ 1:25 pm

    はじめまして、最近SBからWordPressに移行し現在色々なプラグインを物色しております。こちらのmcRSSlist Pluginも早速使用させていただきましたおかげでBookMarkの管理が非常に楽になりました。ありがとうございます。
    ところで、一点だけ質問なのですが、ターゲットを_blankに指定することは可能でしょうか?
    現在の仕様ですとリンク先をクリックするとよそへ跳んで行ってしまうので、できれば別画面へ表示されるようにカスタマイズしたいのですが・・・。

  10. Comment by matopc - August 24, 2006 @ 11:23 pm

    Pentaさん、ご使用いただいてありがとうございます。お返事遅れてすみません。

    リンクを_blankに指定することも可能です。現時点での仕様ではXHTML 1.0 strictに準拠するためにaタグ内でrel="external"と指定して、javascriptを介してblankページに表示させるようにしています。javascriptファイルをWordPressトップページと同じディレクトリに置いて、htmlヘッダで指定する、という風に実現しているのですが、詳しくはこのエントリをご参照ください。

    XHTML仕様を気にしなければtarget="_blank"で良いので、mcRSSlist.php内のrel="external"をtarget="_blank"に書き換えてもらえば動くと思います。:grin:

    ダメそうなら教えてください。

  11. Comment by Penta - August 26, 2006 @ 10:53 pm

    matopcさん
    こちらこそお礼が遅くなりまして申し訳ありません。数日前にこちらへアクセスした時、ーバーの移動をされた直後だったためか、トップページ以外には入れずにおりました。失礼をおゆるしください。
    で、教えていただいた通り、javascriptファイルを設置することで、見事、blankページへ飛ばすことができるようになりました。ありがとうございます。
    wordpressのリンクタグもデフォルトがselfに飛ぶようになっているのもこれで解消されてしまうのですね。タグファイルの書き換えをせずにすんでとても助かります。懇切丁寧な説明と、スクリプトの配布、ありがとうございました。:o

  12. Comment by matopc - August 26, 2006 @ 11:35 pm

    Pentaさん、うまく動いたようでヨカッタです。
    サーバはいったん元に戻して再構築中ですが、移転は当分先になりそうな予感です。。
    またどうぞ。 :grin:

  13. Comment by J.Abe - October 4, 2007 @ 10:48 pm

    del,icio.usからrssを読み込みたいのですが文字化けします。wordpressは2.3、UTF-8で動かしています。mb_convert_encoding ()も指定してみましたが効果はありませんでした。よろしくお願いします。

  14. Comment by matopc - October 5, 2007 @ 1:03 am

    Abeさん、お試しいただいてありがとうございます。
    この点は僕も問題を認識していたのですが、まだ解決できていないのです。

    Del.icio.usのRSSと例えばはてなRSSのソースを見比べて頂くとわかるのですが、del.icio.usのRSS feedは日本語の部分をユニコード形式の文字コードで送ってきます。これをmcRSSlistの方で日本語に戻すことが出来ていないことになります。以前は日本語も問題なく表示できていたので、del.icio.usの仕様が変更になったのかもしれません。

    僕自身もdel.icio.usを使っているので修正したいのは山々なのですが、mcRSSlistでは/wp-includes/rss-functions.phpの機能を使っているので、どこで介入するか少々考える必要がありそうです。すみませんが宿題にさせてください。 :oops:

  15. Comment by violet - January 11, 2008 @ 2:32 pm

    matopcさん、すばらしいプラグインありがとうございます :grin:

    早速使用させていただき、とても快適だったのですが、gooブログのRSSを取り込もうとしたら、Currently unavailable: http://blog.goo.ne.jp/****/index.rdf
    と、出てしまいます。

    取り込めるフィードと比較してみたら、一行目が
    (取り込めるRSS)

    (gooブログのRSS)

    でした。
    これは、

    部分が邪魔していて取り込めないのでしょうか?
    対策方法がありましたら、お教えください。
    どうぞよろしくお願いいたします。

  16. Comment by violet - January 11, 2008 @ 2:35 pm

    先ほどは失礼いたしました。violetです。
    コード部分をそのまま書いてしまい消えてしまいました。

    ----------------------
    (取り込めるRSS)
    <?xml version="1.0" encoding="utf-8" ?>

    (gooブログのRSS)
    <?xml version="1.0" encoding="utf-8" ?><?xml-stylesheet
    href="/css/user.xsl" type="text/xsl" media="screen"?>

    ----------------------

  17. Comment by Anonymous - June 17, 2008 @ 10:56 am

    mcRSSlist Pluginが一番使いやすい :idea:

  18. Comment by Qve - July 15, 2008 @ 2:15 pm

    非常に有用なプラグインをありがとうございます。
    なんとかテンプレートタグ等でできないものかと頑張ってみたんですが、
    力及ばず…。
    早速使わせていただきます!ありがとうございます!

  19. Comment by アラエモン - November 17, 2009 @ 10:29 pm

    勉強になりました!

    ありがとう御座います!

  20. Comment by bowz - December 21, 2009 @ 12:59 pm

    このプラグインを探していました!早速使わせていただいてます。ありがとうございます。
    ところですこしご教示いただけないでしょうか。
    キャッシュの寿命をかなり短くして(10秒程度)使用した場合、
    手動で蓄積するデータのメンテナンスをする必要がでますか?

    サイト更新してないんですが0.4MB/1day程度でデータ量が増えてるみたいで・・・

  21. Comment by matopc - December 21, 2009 @ 4:35 pm

    bowzさん:
    matopcです。お使い頂いてありがとうございます。

    MySQLデータベースではwp_optionsというテーブルにデータがキャッシュされます。1 Feed URL当たり1レコードでデータが記録されますが、Feedの数とFeedのデータ量に依存してデータベースのデータ量が決まり、書き換え頻度で増える訳ではないはずです。

    bowzさんが登録しているFeedが何件くらいのサマリーを吐き出しているか、ブラウザでみてみると参考になるかもしれません。

    ただし、mcRSSlistプラグインでは、使わなくなったFeed URLのデータも残る仕様ですので、phpMyAdminなどが使えるようでしたら、注意してFeedデータをクリアしてみるとよいかと思います。

  22. Comment by bowz - December 21, 2009 @ 11:05 pm

    ありがとうございます!

    別の要因でデータ増量していたみたいで・・・
    丁寧に返答いただいてありがとうございました。

    たまにphpMyAdminでチェックしてみます。

Leave a Comment