MetaBox画像出力について
2025-8-27 / last up date:2025-9-3
Meta Box
wordpress
Meta Box の single_image を clone した時の返り値と安全な出力方法
<?php
// 画像ID配列に正規化
$vals = (array) rwmb_get_value('slideimage');
$ids = [];
foreach ( $vals as $v ) {
if ( is_array($v) ) {
if ( isset($v['ID']) && $v['ID'] ) {
$ids[] = (int) $v['ID'];
}
} else {
if ( ! empty($v) ) {
$ids[] = (int) $v;
}
}
}
if ( ! empty($ids) ) : ?>
<ul class="slide-thumbs">
<?php foreach ( $ids as $id ) : ?>
<li>
<?php
// altはメディアのタイトルをフォールバックに
$alt = get_post_meta($id, '_wp_attachment_image_alt', true);
if ( empty($alt) ) {
$media_post = get_post($id);
if ( $media_post ) {
$alt = $media_post->post_title;
} else {
$alt = '';
}
}
echo wp_get_attachment_image($id, 'thumbnail', false, ['alt' => esc_attr($alt)]);
?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>