如何在WordPress do_shortcode()函数中运行循环?

时间:2012-03-01 16:20:32

标签: php wordpress function loops

是否可以在do_shortcode()函数中运行循环?

示例:

echo do_shortcode('[iscorrect]'.$text_to_be_wrapped_in_shortcode.'[/iscorrect]');

http://codex.wordpress.org/Function_Reference/do_shortcode

我尝试创建一个函数来获取数据并将其粘贴到数组中。然后,对于该数组中的每个项目,返回单个数组值。

示例:

function the_ips(){
    $ips = get_ips();
    foreach($ips as $ip){
        return $ip; 
    }
}

我已经转储了数据数组,以确保其中包含正确的数据。一切都是正确的。它继续在do_shortcode()函数中输出数组的第一个值,但没有别的。

以下是我的尝试:

echo do_shortcode('[iscorrect]'.the_ips().'[/iscorrect]');

$content = '';
$content .= '[iscorrect]';
$ips = get_ips();
foreach($ips as $ip){
    $content .= $ip;    
}
$content .= '[/iscorrect]';
echo do_shortcode($content);

它仍然继续产生数组的第一个结果而没有别的。

1 个答案:

答案 0 :(得分:0)

您对return的呼叫会立即从该功能返回。 foreach循环的其余部分永远不会运行。也许你只想加入ips?

return implode(" ", $ips);

或者,作为清单:

function the_ips(){
  $ips = get_ips();
  $output = "<ol>";
  foreach($ips as $ip){
    $output .= "<li>{$ip}</li>";
  }
  return $output .= "</ol>";
}