2011-07-05 71 views
0

我有我使用拉鳴叫下面的PHP代碼:PHP/WordPress的 - Integate與現有的PHP代碼WordPress的功能Twitter的

<?php 
class TwitterFeed { 
    public $tweets = array(); 
    public function __construct($user, $limit = 5) { 
     $user = str_replace(' OR ', '%20OR%20', $user); 
     $feed = curl_init('http://search.twitter.com/search.atom?q=from:'. $user .'&rpp='. $limit); 
     curl_setopt($feed, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($feed, CURLOPT_HEADER, 0); 
     $xml = curl_exec($feed); 
     curl_close($feed); 
     $result = new SimpleXMLElement($xml); 
     foreach($result->entry as $entry) { 
      $tweet = new stdClass(); 
      $tweet->id = (string) $entry->id; 
      $user = explode(' ', $entry->author->name); 
      $tweet->user = (string) $user[0]; 
      $tweet->author = (string) substr($entry->author->name, strlen($user[0])+2, -1); 
      $tweet->title = (string) $entry->title; 
      $tweet->content = (string) $entry->content; 
      $tweet->updated = (int) strtotime($entry->updated); 
      $tweet->permalink = (string) $entry->link[0]->attributes()->href; 
      $tweet->avatar = (string) $entry->link[1]->attributes()->href; 
      array_push($this->tweets, $tweet); 
     } 
     unset($feed, $xml, $result, $tweet); 
    } 
    public function getTweets() { return $this->tweets; } 
} 
$feed = new TwitterFeed('trekradio', 4); 
$tweets = $feed->getTweets(); 

?> 

我需要在這行$飼料來代替「trekradio」 =新的TwitterFeed('trekradio',4);以便它使用下面的代碼。此代碼根據數據庫字段在動態基礎上定義Twitter ID。

<?php if (have_posts()) { $flag = true; while (have_posts()) { the_post(); 
if ($flag) { $value = get_cimyFieldValue(get_the_author_ID(), 'twitter-username'); 
if ($value != NULL) echo . cimy_uef_sanitize_content($value) . ; 
$flag = false; }}} ?> 

有人可以告訴我如何整合代碼,以便它能正常工作嗎?

感謝

回答

0

我想提出的假設是,$值是您將要通過作爲參數發送變量?

我還假設TwitterFeed類可以從您嘗試運行第二個代碼片段的位置訪問。

最後的假設是cimy_uef_sanitize_content返回一個有效值作爲參數傳遞給TwitterFeed構造函數。

從類下面除去$ feed和$ tweets行(除非你明確要求它對trekradio運行)。

然後使用下面的代碼:

<?php 
if (have_posts()) { 
    $flag = true; 
    while (have_posts()) { 
     the_post(); 
     if ($flag) { 
      $value = get_cimyFieldValue(get_the_author_ID(), 'twitter-username'); 
      if ($value != NULL) { 
       $feed = new TwitterFeed(cimy_uef_sanitize_content($value), 4); 
       $tweets = $feed->getTweets(); 
       // Do whatever you need to do with your Tweets here 
      } 
      $flag = false;  
     } 
    } 
} ?> 

但是你爲什麼再次問這個問題?它肯定已經回答 PHP - An Echo inside of an existing function

編輯:問:什麼是「Twitter的用戶名」和你要發送到$用戶參數的構造函數通過twitterfeed值之間的差異?如果這些相同,則可以簡化。

+0

我再次詢問的原因是因爲我在前面的問題中犯了一個錯誤,雖然解決方案在我發佈的代碼的上下文中工作,但代碼略有不同。之前的代碼是拉取特定用戶的數據庫變量,在上面的代碼中,它檢測到用戶擁有您當前所在的頁面,併爲其供稿提取他們的Twitter用戶名。希望這是有道理的。 –