1

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

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

感谢您的时间。

4

1 回答 1

1

我偶然发现了您的问题,正在寻找有关 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) 函数,但它也只是从数组位置的所有帖子列表中取出一个特定帖子(这几乎与我建议的方式相同)。

于 2012-06-20T12:57:25.670 回答