Advanced Custom Fieldsの画像IDでaltを取得する

Advanced Custom Fieldsで画像を扱うとき、画像の返り値にIDを設定した場合にaltを取得する方法です。

_wp_attachment_image_altを使う

返り値がIDの場合altを取得するには_wp_attachment_image_altを使います。具体的には以下の通り。

<?php
$img_alt = get_post(get_field('img'));
$alt = get_post_meta( $img_alt->ID, '_wp_attachment_image_alt', true );
?>

imgがフィールド名です。実例は以下のようになります。

<?php
$img = get_field('img');
$images = wp_get_attachment_image_src($img, 'サイズ');
$img_alt = get_post(get_field('img'));
$alt = get_post_meta( $img_alt->ID, '_wp_attachment_image_alt', true );
?>
<img
src="<?php echo $images[0]; ?>"
alt="<?php echo $alt; ?>"
height="<?php echo $images[2]; ?>"
width="<?php echo $images[1]; ?>"
>

Advanced Custom Fieldsの情報収集時、画像はIDの方が取り回しがいいって聞いいていたので、妄信的に返り値にIDを設定していたのですがaltどうやって取得するんだろう?ってのが謎でした。_wp_attachment_image_alt・・・・いろいろ便利な関数がありまありますね。

通常版を見る