情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
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; } ?>
2021.6追記
通常の画像フィールドで「配列」の場合、$image = get_field(‘xxxx’); としたら、$image[‘url’]、$image[‘alt’]、$image[‘width’]、$image[‘height’] となる。
2024.2追記
フルサイズでうまくサイズが取得できなかったので、$width = $image[‘sizes’][‘large-width’]; $height = $image[‘sizes’][‘large-height’]; で実装。
その他のAdvanced Custom Fields に関する記事一覧
- ページ・投稿の差し替え更新
- ゆっくり編集・プレビューして更新する
- メールフォーム・申込みの締め切り
- ACF iframe
- acf カウント
- ACFで日時指定更新/ゆっくり編集して更新
- アイキャッチの有無とリピーター1つ目の画像
- ACFリピーターのサブフィールドを自動作成
- イベントカレンダーサンプル(ACFとCF7)
- acf 投稿オブジェクトにメタ値でフィルター
- ACF 画像URLからALTを取得
- 子テーマでACFを使う
- ACF リピーターをランダムに
- ブロックエディターでACFを使う
- ACF Blocks
- acf reset_rows
- ACF 値などの登録まとめ
- ACF チェックボックスの値での条件分岐
- ACF 柔軟コンテンツフィールド、固定ページ用
- ACF 柔軟コンテンツフィールド、ブログ・コラム用