すてきな気分〜ナイスフィーリングブログ〜

RSSを引っ張るPHPコード

ワードプレスで制作した複数のブログの新着記事を、トップで一括表示すると言う仕事があったので、RSSで引っ張ってこようと漠然と考えた。
日付順でできるといいなぁ〜なんてことを考えたけど、開発すると思うと(┐・・┌)ゲッソリ…

でも!!
ずばり、ドンピシャなのがあったので覚え書きメモ!

<?php include_once(ABSPATH . WPINC . '/rss.php');
 
//フィードのURI
$rss_arr = array(
    'http://サイトのURL1/feed/',
    'http://サイトのURL2/feed/',
);
 
//表示件数
$num = 10;
 
foreach($rss_arr as $uri) {
    $rss = fetch_rss($uri);
    $title = $rss->channel['title'];
    $link  = $rss->channel['link'];
    $description  = $rss->channel['description'];
    foreach($rss->items as $item) {
        $item_title = $item['title'];
        $item_link  = $item['link'];
        $item_date  = $item['pubdate'];
        $out_item_date  = date('Y年m月d日', strtotime($item_date));
	$item_description  = $item['description'];
	$item_description = mb_strimwidth ($item["description"], 0, 70, "…",utf8);
        $out_item = '<dt>' . $out_item_date . ' <a href="' . $link . '" target="_blank">' . $title . '</a></dt>
        <dd>' . $item_title . '<br />
	 ' . $item_description . '</dd>';
        $unix_time = date('U', strtotime($item_date));
        $item_arr[$unix_time] = $out_item;
    }
}
 
//ソート
krsort($item_arr);
 
//出力
//echo '<h2>新着' . $num . '件</h2>';
 
echo '<dl>';
 
for(reset($item_arr); $key = key($item_arr); next($item_arr)) {
    echo $item_arr[$key];
    ++$count;
    if($count === $num) {
        break;
    }
}
echo '</dl>';
?>

ほとんどそのままでいけたけど、以下も追加してます。

$item_description  = $item['description']; // 記事本文
$item_description = mb_strimwidth ($item["description"], 0, 70, "…",utf8); // 文字数制御

またひとつ、お勉強になりました。

トラックバック

このエントリーのトラックバックURL:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です