1

私はこのようなコードを持っています。

$counter = 1;
$content = "";
foreach($images as $image) {
    $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    $counter++;
}
echo apply_filters('images_filter', $content);

上記のコードは、WordPressフィルターを使用してコンテンツ全体を非表示にします。ただし、画像の最後の50%のみを非表示にします。

15枚の画像があるとしましょう。

$hide = floor( $counter / 2 ); //value will be 7

そのため、8から15までの画像のみを非表示にします。

私はこのように試しました。しかし、それは機能していません。

if ($counter >= $hide) {
    echo apply_filters('images_filter', $content);
}

誰かが正しい構文を教えてもらえますか?

4

4 に答える 4

1

画像フィルターはわかりませんが、これでうまくいくはずです。

  $show = ceil( count($images) / 2 );      
  $counter = 1;
  $content = "";
  foreach($images as $image){
        if($counter<=$show){
            $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
        }else{
            break;
        }
        ++$counter;
     }
    echo apply_filters('images_filter',$content);
于 2013-01-04T14:08:46.037 に答える
0

次のようなものを試してください。

$counter = 1;
$content = "";
$hide = floor( $counter / 2 ); //value will be 7
foreach($images as $image){

    if ($counter >= $hide) $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    else echo "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    $counter++;
}

    echo apply_filters('images_filter',$content);

通常のHTMLをエコーし​​、残りの部分にフィルターを適用しますか?

于 2013-01-04T14:08:15.337 に答える
0

foreachループを解除する必要があります。

foreach($images as $image){
   if ($counter <= $hide){ 
      $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
      $counter++;
   }
   else {
      break;
   }
}
于 2013-01-04T14:09:21.357 に答える
0

私はこれがうまくいくと思います:

foreach($images as $image) if($counter++ <= $hide) {
// do your stuff
}

break; を使用する方が良いですが。サイモンRが言ったように。

于 2013-01-04T14:11:04.510 に答える