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 件のコメント:
コメントを投稿