【问题标题】:How can I get an id from a simplepie post which can be used to look it up later?我如何从一个简单的帖子中获取一个 ID,以便以后查找它?
【发布时间】:2012-04-08 05:41:47
【问题描述】:

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

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

感谢您的宝贵时间。

【问题讨论】:

    标签: php simplepie


    【解决方案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) 函数,但它也只是从数组位置的所有帖子列表中取出一个特定帖子(这与我建议的方式几乎相同)。

    【讨论】:

    • 嘿,我同时编写了一个相当丑陋的 hack,但这似乎是一个更好的解决方案。可惜没有通过 ID 获取它们的功能。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2011-09-13
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多