ワードプレスで制作した複数のブログの新着記事を、トップで一括表示すると言う仕事があったので、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); // 文字数制御
またひとつ、お勉強になりました。