2012-04-08 21 views
0

我最近開始開發一個投資組合網站,我想用simplepie鏈接到我的wordpress博客。到目前爲止,這是一個非常順利的過程 - 加載帖子的名稱和描述,並將它們鏈接到完整的帖子非常簡單。不過,我希望可以選擇在我自己的網站上顯示帖子。獲取給定文章的完整內容很簡單,但我想要做的是提供最近發佈的鏈接到我的投資組合網站上的一個php頁面的列表,該頁面使用某種類型的GET變量來標識帖子,以便我可以在那裏呈現完整的內容。我怎樣才能從simplepie的帖子獲得一個id,以後可以用它來查看它?

這就是我遇到問題的地方 - 似乎沒有任何方法根據特定的ID或名稱或類似來查找帖子。有什麼辦法可以從一個頁面上的帖子對象中提取一些唯一的標識符,然後將標識符傳遞給另一個頁面並在那裏查找特定的帖子?如果這是不可能的,有沒有辦法讓我簡單地傳遞整個post對象,或者暫時將它存儲在某個地方,以便其他頁面可以使用它?

謝謝你的時間。

回答

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)函數,但它也只是從數組位置的所有文章的列表中取出一個特定的文章(這與我建議的幾乎相同)。

+0

嘿,我在一起扔了一個相當醜陋的黑客,但這似乎是一個更好的解決方案。可惜沒有一個函數可以通過ID獲得它們。謝謝! – 2012-06-20 17:25:16

相關問題