0

フィールドに値 (この場合は画像) があるかどうかを確認したいのですが、ある場合は画像が表示されます。これを行うためのより良い方法があるかどうかはわかりません。私はif文をやり過ぎていると感じています。提案?

 <img src="<?php the_field('image_1'); ?>" alt="">
<?php if (get_field('image_2')) : ?>
 <img src="<?php the_field('image_2'); ?>" alt="">
<?php endif; ?>
<?php if (get_field('image_3')) : ?>
 <img src="<?php the_field('image_3'); ?>" alt="">
<?php endif; ?>
<?php if (get_field('image_4')) : ?>
 <img src="<?php the_field('image_4'); ?>" alt="">
<?php endif; ?>
<?php if (get_field('image_5')) : ?>
 <img src="<?php the_field('image_5'); ?>" alt="">
<?php endif; ?>
<?php if (get_field('image_6')) : ?>
 <img src="<?php the_field('image_6'); ?>" alt="">
<?php endif; ?>
4

2 に答える 2

1

確かにもっと良い方法があります:

<?php foreach (range(2,6) as $digit):
   if (get_field("image_$digit")): 
?>
  <img src="<?php the_field("image_$digit") ?>" alt="" />
<?php 
   endif; endforeach; ?>

互いに非常によく似た一連のコード行がある場合は、それらをループにする方法を考えてください。これは、すべてのブロックが 'image_N' var の N だけ異なるためです。

于 2013-10-30T19:03:52.143 に答える
0
<?php
for($a=1;$a<=6;$a++){

    $name = 'image_' . $a;

    if(get_field($name){
        echo "<img src='";
        echo the_field($name);
        echo "' alt='' />";
    }
}

get_field または the_field 関数が何であるか正確にはわからないので、そこではお手伝いできません。

于 2013-10-30T19:07:01.750 に答える