Magpie RSSやWordPressで複数のRSS混ぜる。

たくさんのブログのRSSを引っ張ってきて、その記事を日付とかでソートして出力するためのスクリプトです。

RSSのパースにはWordPressのrss.phpを使っています。ちなみにこれの正体はMagpie RSSです。ですので両方で利用できると思います。

mixedrss.phpなんてファイル名にしてます。置いてある場所はWordPressのルートディレクトリです。なのでパスはその場に応じて適当な物に変更して下さい。
[php]
/*
Mixed RSS Reader for WordPress
Author:Toro-Unit
*/

include_once("./wp-load.php");
include_once(ABSPATH . WPINC . ‘/rss.php’); //MagpieRSS of WordPress
//RSSのキャッシュ設定
define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);
define(‘MAGPIE_CACHE_DIR’, ‘./cache’);
define(‘MAGPIE_FETCH_TIME_OUT’, 40);
define(‘MAGPIE_CACHE_AGE’, 15*60);

function mixed_rss($rssURL){
foreach($rssURL as $key => $val){
$rssObj = fetch_rss($val);
$items[$key] = $rssObj->items;

foreach($items[$key] as $item){
$entry[] = $item;
if(isset($item["pubdate"])){

$entryDate[] = strtotime($item["pubdate"]);
}
if(isset($item["dc"]["date"])){

$entryDate[] = strtotime($item["dc"]["date"]);
}

}
}
array_multisort($entryDate,SORT_DESC,SORT_NUMERIC,$entry);
return $entry;
}

[/php]

使い方。

[php]
include_once(ABSPATH . ‘/mixedrss.php’);
$rsslist = array("URL1","URL2","URL3");
$rssitem = mixed_rss($rsslist);

foreach($rssitem as $item){
echo $item["title"];

}
[/php]

みたいな感じで使います。
今度これでRSSの発行でもしようかと思います。仕事で使うので・・・・