2012-03-01 57 views
0

是否可以在do_shortcode()函数内运行循环?如何在WordPress 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); 

它仍然继续生产的阵列,别无其他的第一个结果。

回答

0

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

return implode(" ", $ips); 

,或作为列表:

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

最后,我想在一个有序列表返回每个IP作为一个列表项。 – 2012-03-01 16:43:08

+0

@MichaelEcklund更新示例 – menacingly 2012-03-01 16:49:51