抓取每篇文章的rss提要抓取每篇文章的评论rss提要如果你想进行多次运行,请将其缓存起来,也可以方便地调试错误的提要不要在wordpress安装中执行此代码,而是在一个单独的地方安装magpierss,使用一个令牌在每次rss提要中存储最新日期,以便下次执行此操作“聚合”
a) 可能会将其重新组合到一个新的RSS源中,并发布该RSS源以供订阅。b) 可能会在新的推特提要中重新发布每个帖子
header:
require_once \'magpierss/rss_fetch.inc\';
define("MAGPIE_CACHE_DIR", "/home/yoursite/cache");
define("MAGPIE_CACHE_ON", true);
simple loop based on a file based storage of cache and last-datetime-counter:
$rss = fetch_rss(\'http://whateversite/rss.php\');
$filename = "/your_path_to_datetime_token/timedatetoken.txt" ;
$fp = fopen($filename, \'r\');
$lastdate = fread($fp, filesize($filename));
fclose($fp);
$wroteLastDate = false;
// read feed
foreach ($rss->items as $item) {
$published = $item[\'date_timestamp\'];
if ($published > $lastdate) {
if ($wroteLastDate == false) {
$fp = fopen($filename, \'w\');
fwrite($fp, $published);
fclose($fp);
$wroteLastDate = true;
}
$title = $item[title];
$url = $item[link];
$guid = $item[guid];
$description = $item[description];
$description = strip_tags($description);
// now store it somewhere or e.g. post it to your owb blog via xmlrpc
}
}
因此,评论需要相同的循环,也就是表单/提要,所以你在上面找到的每一篇帖子($url)都会调用一个新的完全相同的循环,但对于($url)/提要。这些是注释,相同的循环,相同的过程。
行“//now store it something or e.g.post it to your owb blog via xmlrpc”现在意味着您可以调用自己的聚合器blog xmlrpc向现有帖子添加新帖子或新评论。
1) 添加新帖子是非常默认的,您可以调用此函数:
function wpPostXMLRPC($title,$body,$rpcurl,$username,$password,$categories=array(867)) {
$categories = implode(",", $categories);
$XML = "<title>$title</title>" . "<category>$categories</category>" . $body;
$params = array(\'\',\'\',$username,$password,$XML,1);
$request = xmlrpc_encode_request(\'blogger.newPost\',$params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $rpcurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_exec($ch);
curl_close($ch);
}
该博客将被输入到您的聚合器博客中。现在来看评论:在通过XMLRPC添加评论之前,您必须检查日志是否已经存在于您的博客中。因此,首先做检查,然后做评论(实际上,甚至在添加新帖子之前也可能这样做)。
通过:wp添加新注释。新来者(http://codex.wordpress.org/XML-RPC_wp)
如果您接近聚合器应用程序数据库,您可以跳过XMLRPC,而不是直接调用XMLRPC进行数据库验证,例如,如果帖子已经存在,则获取id,然后检查注释是否存在,如果没有存储,如果更新,则更新,如果删除,然后删除(以完全同步)。
(您需要删除您这边的评论和帖子,以防止人们因为各种原因(有时是几年后)呼叫您删除帖子或评论)-->从而决定您希望将聚合的帖子和评论保留多长时间以供外部显示。
我会将这个预定的rss检查器和更新程序作为一个单独的应用程序运行,而不是在同一个应用程序中,因为表示层要使其具有可伸缩性等等。。。
依我拙见