echo or return?

时间:2010-12-17 作者:Niraj Chauhan

Possible Duplicate:
append_content help

我有一个用来显示推特推文的代码,但问题是,它显示在帖子内容之前,我知道问题出在回声上,因为它先回声,然后帖子就来了,所以帖子就在推文之后,当我试图让回声返回推文时,推文就不来了这是我的代码

function append_the_content1($content) {
 //if(get_option(\'tweetID\')!=null){
    $content .= "<div class=\'post\'><p>".tweet(get_option(\'tweetID\'))."</p></div>";
      return $content;
   //}
    //else{
    //return $content;
    //}
}
add_filter(\'the_content\', \'append_the_content1\');
function tweet(){
$doc = new DOMDocument();
if (get_option(\'tweetID\') != null) {
if($doc->load(\'http://twitter.com/statuses/user_timeline/\'.get_option(\'tweetID\').\'.rss\')) {
  $output = "<ul>";


  # number of <li> elements to display.  20 is the maximum
  $max_tweets = 5;    

  $i = 1;
  foreach ($doc->getElementsByTagName(\'item\') as $node) {
    # fetch the title from the RSS feed. 
    # Note: \'pubDate\' and \'link\' are also useful (I use them in the sidebar of this blog)
    $tweet = $node->getElementsByTagName(\'title\')->item(0)->nodeValue;

    # the title of each tweet starts with "username: " which I want to remove
    $tweet = substr($tweet, stripos($tweet, \':\') + 1);   

    # OPTIONAL: turn URLs into links
    $tweet = preg_replace(\'@(https?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?)@\', 
          \'<a href="$1">$1</a>\', $tweet);

    # OPTIONAL: turn @replies into links
    $tweet = preg_replace("/@([0-9a-zA-Z]+)/", 
          "<a href=\\"http://twitter.com/$1\\">@$1</a>", 
          $tweet);

    $output = "Twiiter Updates:<li>". $tweet  . "</li>\\n";


    if($i++ >= $max_tweets) break;
  }
   $output = "</ul>\\n";
  return $output;
}
}
}

1 个回复
最合适的回答,由SO网友:Dan Grossman 整理而成

函数只能返回一个值。更改所有echo 你的声明tweet 函数连接字符串,然后在函数末尾返回字符串。

结束

相关推荐

寻找更好的Twitter小部件

我正在使用“FriendFeed活动”小部件来显示我的好友feed的最新7个实体。然而,FriendFeed只是聚合了我的Twitter、博客(通过RSS)和YouTube活动。这是推特一开始无法处理的事情,但现在可以了。所以我想删除我的FriendFeed,完全切换到Twitter(和一个Twitter小部件)。但是“FriendFeed活动”小部件在每篇帖子前面都会显示一个图标(YouTube符号、RSS符号、Twitter符号),如果帖子中有YouTube链接,则会显示缩略图。有没有一个Twitte