Как запустить цикл внутри функции WordPress do_shortcode ()? - PullRequest
0 голосов
/ 01 марта 2012

Возможно ли запустить цикл внутри функции 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 голосов
/ 01 марта 2012

Ваш звонок на 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>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...