情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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 に関する記事一覧
- PHP8以降で出るWarning
- イベントの開催期間の表示
- イベント終了時にタイトルに追加する
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る
- ACF 設定ページ(オプションページ)
- ACF escape HTML
- 出勤・スケジュール管理の覚書2
- ACF 複数選択チェックボックスのチェックの有無
- Advanced Custom Fields で役立つ関数
- 日時予約簡易版
- ACF チェックボックス(複数選択)のアップデート
- ACF アップデート WPForms Lite の場合
- フォームを定員で締め切る関数の話
- WP All Import とACF メモ
- CF7 投稿IDとフォームID
- 管理画面メニューや編集ページの一部非表示
- ACF サブフィールドのアップデート
- ACF入れ子のグループフィールドのアップデート