画像サイズで条件分岐

Advanced Custom Fields で見出し・テキスト・画像欄をつけるという要望で、画像は複数選択で個別のリンク設定はなしなのでギャラリーフィールドにする方が使いやすいが、画像の向きによって画像の外側の要素が違う…となると、繰り返しフィールドで画像の向きをチェックボックスで選択?

しかし、投稿時の手間は1つでも少ないほうが良いので、画像サイズを取得して縦横のサイズ比で分岐することにした。

ギャラリーフィールドにアップした元画像のURLは $image[url] で取得できるので、

<?php $images = get_field('images'); if( $images ) { ?><?php foreach( $images as $image ): ?><?php $imagesize = getimagesize($image[url]); if ($imagesize[0] > $imagesize[1]) { ?>
<div class="horizontal"><img src="<?php echo $image['sizes']['horizontal']; ?>" alt="" /></div>
<?php } else { ?>
<div class="vertical"><img src="<?php echo $image['sizes']['vertical']; ?>" alt="" /></div>
<?php } ?>
<?php endforeach; } ?>

その他のAdvanced Custom Fields に関する記事一覧

このエントリーをはてなブックマークに追加
« »