2013-02-08 47 views
0

我想創建一個使用短代碼輸出我想要的自定義WordPress插件。在這個文本代碼中,我試圖讀取一個rss文件,並且只吐出前5個提要的列表。儘管使用foreach,WordPress的短代碼只從feed中返回1

$showno是shortcode變量之一,所以我可以使用以下[player show=foo snowno=5]。在示例代碼$show未使用。

下面的代碼僅顯示Feed列表中的最新項目。如果我將return更改爲echo,那麼它會按預期工作,除非它在帖子的頂部顯示,而不是顯示我輸入簡碼的位置。我尋找這個答案,提供的解決方案只是「使用回報」,我已經做了...

欣賞意見。謝謝

include_once(ABSPATH . WPINC . '/rss.php');   

$num_items = $showno; 
$feedurl = 'http://feeds.bbci.co.uk/news/rss.xml'; 
$feed = fetch_rss($feedurl); 
$items = array_slice ($feed->items, 0, $num_items); 

foreach ($items as $item) { 
    $title = $item[title]; 
    $mp3link = $item[link]; 
    $description = $item[description]; 
    return "<li>$title - $description</li>"; 
}  
+0

這是不是一個完整的簡碼。我認爲這是包裝在一個函數中,並用['add_shortcode'](http://codex.wordpress.org/Function_Reference/add_shortcode)'註冊'? – 2013-02-09 16:38:24

回答

1

Shortcodes應該返回不迴應。

在你的代碼中,你打破了foreach的執行並返回第一個值。

你應該建立一個字符串變量和foreach循環後歸還,因此,所有你的循環將被列入,例如:

$final_html = ''; 
foreach($items as $item) 
{ 
    $final_html .= "<li>$title - $description</li>"; 
} 
return $final_html; 
+0

謝謝。我現在有腳本工作 – 2013-02-10 18:28:26