如何从simplepie帖子中获取id,以便以后查找?

时间:2012-04-08 05:41:48

标签: php simplepie

我最近开始开发一个投资组合网站,我想用simplepie链接到我的wordpress博客。到目前为止,这是一个相当顺利的过程 - 加载帖子的名称和描述,并将它们链接到完整的帖子非常容易。但是,我想选择在我自己的网站上呈现帖子。获取给定帖子的完整内容很简单,但我想要做的是提供一个链接到我的投资组合网站上的php页面的最近帖子的列表,该页面采用某种GET变量来识别帖子,以便我可以在那里呈现完整的内容。

我遇到问题的地方 - 似乎没有任何方法可以根据具体的ID或名称等来查找帖子。有什么办法可以从一个页面上的post对象中提取一些唯一标识符,然后将标识符传递给另一个页面并在那里查找特定的帖子吗?如果那是不可能的,有没有办法让我简单地传递整个帖子对象,或者暂时将它存储在某个地方以便其他页面可以使用它?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我偶然发现了你的问题,寻找关于simplepie的其他内容。但是我在使用simplepie时使用标识符。所以这似乎是你问题的答案:

PHP中的getFeedPosts函数如下所示:

public function getFeedPosts($numberPosts = null) {
    $feed = new SimplePie();    // default options
    $feed->set_feed_url('http://yourname.blogspot.com');    // Set the feed
    $feed->enable_cache(true);  /* Enable caching */
    $feed->set_cache_duration(1800);    /* seconds to cache the feed */         
    $feed->init();  // Run SimplePie.
    $feed->handle_content_type();
    $allFeeds = array();
    $number = $numberPosts>0 ? $numberPosts : 0;
    foreach ($feed->get_items(0, $number) as $item) {
        $singleFeed = array(
            'author'=>$item->get_author(),
            'categories'=>$item->get_categories(),
            'copyright'=>$item->get_copyright(),
            'content'=>$item->get_content(),
            'date'=>$item->get_date("d.m.Y H:i"),
            'description'=>$item->get_description(),
            'id'=>$item->get_id(),
            'latitude'=>$item->get_latitude(),
            'longitude'=>$item->get_longitude(),
            'permalink'=>$item->get_permalink(),
            'title'=>$item->get_title()
        );
        array_push($allFeeds, $singleFeed);
    }
    $feed = null;
    return json_encode($allFeeds);
}

正如您所看到的,我构建了一个关联数组并将其作为JSON返回,这使得在客户端使用jQuery和ajax(在我的情况下)非常容易。

'id'是我博客中每个帖子的唯一标识符。所以这是在另一个函数/另一个页面上识别同一帖子的关键。你只需要迭代帖子并比较这个id。据我所知,没有get_item($ ID)函数。有一个get_item($ key)函数,但它也只是从数组位置的所有帖子列表中取出一个特定的帖子(这与我的建议几乎相同)。