2012-03-01 11 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

Iは、データを取得し、アレイの中に固執する関数を作成しようとしています。次に、その配列内の各項目について、個々の配列値を返します。

例:

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への電話は、すぐに機能から戻ってきます。 foreachループの残りの部分は実行されません。おそらくあなたは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を返すようにしたいと思います。 –

+0

@MichaelEcklundの更新された例 – menacingly

関連する問題