0

PHPを使用していくつかのdivを画像にラップして、divごとに最大8つの画像を表示しようとしています。カスタム フィールドの WordPress プラグインを使用してチームの画像を引き出していますが、それらを div でラップする必要があります。一部は機能していますが、残りの div は表示されません。これが最善の方法かどうかはわかりませんが、これが私のコードです。

function team($i,$t){                       

    $values = get_field('team_member'.$i);



if($values["url"]){

$answer = $i / 8;

    if(is_int($answer)){

        echo '<div class="team'.$i / 8.'">'. "\r\n";
        echo $t;
        $t  =   '';
        echo '</div>'. "\r\n";

    }                           

    $t .='<a href="'.$values["url"].'" alt="'.$values["alt"].' Thumbnail" >'. "\r\n";
    $t .='<img src="'.$values["sizes"]["thumbnail"].'" alt="'.$values["alt"].'" />'. "\r\n";
    $t .='</a>'. "\r\n";                                
    $i = $i+1;

    team($i,$t);
    }

}

team(1,'');

私は以下のような結果を得ようとしています。

<div id="team">
    <div id="team1">
    <img 1>
    <img 2>
    ..
    <img 7>
    <img 8>
    </div>

    <div id="team2">
    <img 1>
    <img 2>
    ..
    <img 7>
    <img 8>
    </div>

    <div id="team3">
    <img 1>
    <img 2>
    ..
    <img 7>
    <img 8>
    </div>

    <div id="team4">
    <img 1>
    <img 2>
    <img 3>
    </div>
</div>
4

1 に答える 1

1

あなたの方法は紛らわしく、読みにくいです。この例を見て、そこから進んでください。

$images = array('bear.jpg','cat.jpg','owl.jpg','dog.jpg','bird.jpg');
$itemsPerDiv = 3;
$count = 0;
echo '<div class="animal-row">';

foreach($images as $img)
{
    if ($count % $itemsPerDiv == 0 && $count != 0)
    {
        echo '</div><div class="animal-row">';
    }

    echo '<img src="'.$img.'">';

    $count++;
}

echo '</div>';

これは出力されます

<div class="animal-row">
    <img src="bear.jpg">
    <img src="cat.jpg">
    <img src="owl.jpg">
</div>
<div class="animal-row">
     <img src="dog.jpg">
     <img src="bird.jpg">
</div>

これがどのように機能するかについての説明が必要な場合は、私に知らせてください。あなたの問題は、除算演算子を使用していることであり、MOD ではなく、見逃している剰余を決定するため、この場合により適していると思います。

于 2013-09-08T14:50:40.017 に答える