我正在尝试创建一个自定义Wordpress插件,它利用短代码输出我想要的内容。在这个文本代码中,我试图读取一个rss文件,并只吐出前5个Feed的列表。
$showno
是短代码变量之一,因此我可以使用以下[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 :(得分:1)
Shortcodes应该返回而不回显。
在您的代码中,您正在中断foreach
的执行并返回第一个值。
你应该构建一个字符串变量,并在foreach
循环之后返回它,所以你的所有循环都会被包含在内,例如:
$final_html = '';
foreach( $items as $item )
{
$final_html .= "<li>$title - $description</li>";
}
return $final_html;