我如何在这里正确使用forloop?

时间:2016-06-27 09:27:48

标签: php html wordpress loops

我正在使用Wordpress的推文插件,我正在覆盖推文所包含的默认HMTL标记。为此,我在我的functions.php。

中使用了一个过滤器
add_filter('latest_tweets_render_list', function( array $list ){
  $output = '<div>';
  foreach ($list as $l) {
    $output .= $l;
  }
  $output .= '</div>';
  return $output;
}, 10, 1); 

这将输出以下内容:

<div>
  //tweets
  //tweets
  //tweets
  //tweets
</div>

我需要将每个推文包含在它自己的DIV中,就像这样

<div>
 //tweet
</div>
<div>
 //tweet
</div>

我尝试了以下内容:

add_filter( 'latest_tweets_render_list', function( array $items, $screen_name=null ){

  foreach ($items as $l) {
     $output = '<div class="small-4 columns">'.$l.'</div>';
  }
     return $output;

}, 10 , 1 );

add_filter( 'latest_tweets_render_list', function( array $items, $screen_name=null ){

  foreach ($items as $l) {
     echo '<div class="small-4 columns">'.$l.'</div>';
  }

}, 10 , 1 );

然而,在这样做之后,只显示1条推文,好像说它没有正确迭代。这是为什么?

3 个答案:

答案 0 :(得分:1)

将最后一个for循环更改为concat,而不是在每个循环上覆盖$output。类似的东西:

foreach ($items as $l) {
  $output .= '<div class="small-4 columns">'.$l.'</div>';
}

答案 1 :(得分:1)

试试这个

$output = '';
foreach ($items as $l)
{
    $output .= '<div class="small-4 columns">'.$l.'</div>';
}

答案 2 :(得分:0)

add_filter('latest_tweets_render_list', function( array $list ){
  $output = "";
  foreach ($list as $l) {
    $output .= "<div>{$l}</div>";
  }
  return $output;
}, 10, 1);