2011年6月17日金曜日

WordPress のコア関数を使って外部ブログの更新情報一覧を表示する方法

WordPress コアの rss.php を使って外部の様々なブログから更新情報を拾い全てのブログを日付順に並び替えて表示する方法

buddypress/bp-activity/bp-activity-templatetag.php の関数の書き換えですが、他へも流用可。
echo 部分をリターンで返せば他でも使えるでしょう。

function bp_activity_get_rss() {
        $blogReadArr = file("./org/blog-URLs.txt"); // title TAB URL改行 のテキスト

        $iArray = array();
        foreach ($blogReadArr as $value) {
            $blogPartArr = explode("\t", $value);
            $blogTitle = $blogPartArr[0];
            $blogRSS = $blogPartArr[1];
            include_once(ABSPATH . WPINC . '/rss.php');
            $rss = fetch_rss("$blogRSS");
            $maxitems = 3;
            $items = array_slice($rss->items, 0, $maxitems);
           
            if ($items) {
                foreach ( $items as $item ){
                    $dt = NULL;
                    if (isset($item["dc"]["date"])) $dt = substr($item["dc"]["date"],5,14);
                    if (isset($item["pubdate"])){
                        $pdt = strtotime($item["pubdate"]);
                        $dt = date("m-d",$pdt)."T".date("H:i:s",$pdt);
                    }
                    $iArray[$dt] = array("date"=>$dt, "link"=>$item["link"], "title"=>$item["title"], "name"=>$blogTitle);
                }
            }
        }
        arsort($iArray);
        foreach ( $iArray as $item ){
            $link = $item["link"];
            $title = $item["title"];
            $name = $item["name"];
            $dt = substr($item["date"],0,5);
            echo "<li>$dt $name <a href=\"$link\" title=\"$title\" arget=\"_blank\">$title</a></li>";
        }
}

0 件のコメント:

コメントを投稿