【问题标题】:Wordpress shortcode only returning 1 from feed despite using foreach尽管使用了 foreach,但 Wordpress 简码仅从提要中返回 1
【发布时间】:2013-02-08 22:37:47
【问题描述】:

我正在尝试创建一个自定义 Wordpress 插件,该插件利用简码输出我想要的内容。在此文本代码中,我试图读取一个 rss 文件并仅输出前 5 个提要的列表。

$showno 是短代码变量之一,因此我可以使用以下[player show=foo snowno=5]。在示例代码中没有使用$show

下面的代码仅显示提要列表中的最新项目。如果我将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>";  
}     

【问题讨论】:

  • 这不是一个完整的简码。我假设这是包装在一个函数中并使用add_shortcode“注册”?

标签: wordpress foreach rss return shortcode


【解决方案1】:

Shortcodes 应该返回而不回显。

在您的代码中,您正在中断foreach 的执行并返回第一个值。

您应该构建一个字符串变量并在 foreach 循环之后返回它,这样您的所有循环都将被包含在内,例如:

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

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多