Добавьте тег ALT в массив при отображении галереи изображений в WordPress

Как мне добавить тег ALT для этих изображений? Должен ли я добавить

$alt = get_post_meta(get_post_thumbnail_id($post->ID), '_wp_attachment_image_alt', true);

в массив, а затем добавьте <?php echo $alt; ?> при отображении изображения?

  <?php /* 2 IMAGES DIVIDER */ ?>
<?php if($divider_type == 'images'): ?>
<section class='divider content gallery'>
<?php
$images = array();
foreach($section['images'] as $image_id => $image_url)
{
$image = wp_get_attachment_image_src($image_id, '900w');
$image_details = get_post($image_id);
$images[] = array('img_url'=>$image[0],'caption'=>$image_details->post_excerpt);
}
?>
<div class='gallery-half'>
<figure>
<img src='<?php echo $images[0]['img_url']; ?>'>
<?php if($images[0]['caption'] != ''): ?>
<figcaption><?php echo $images[0]['caption']; ?></figcaption>
<?php endif; ?>
</figure>
</div><!--
--><div class='gallery-half'>
<img src='<?php echo $images[1]['img_url']; ?>'>
</div>
</section>
<?php endif; ?>

Заранее спасибо.

0

Решение

Почему бы не использовать wp_get_attachment_image()? Это обрабатывает тэг alt для вас.

<?php /* 2 IMAGES DIVIDER */ ?>
<?php if ( $divider_type == 'images' ) : ?>
<section class='divider content gallery'>
<?php
$images = array();
foreach ( $section['images'] as $image_id => $image_url ) : ?>
<?php $image_details = get_post( $image_id ); ?>
<div class='gallery-half'>
<figure>
<?php echo wp_get_attachment_image( $image_id, '900w' ); ?>
<?php if ( $image_details->post_excerpt ) : ?>
<figcaption><?php echo $image_details->post_excerpt; ?></figcaption>
<?php endif; ?>
</figure>
</div>
<?php endif; ?>
</section>
<?php endif; ?>

Я слегка изменил фрагмент, чтобы он перебрал все изображения в вашем разделе $ [‘images’] и вывел .gallery-half div с элементом figure и заголовком, если он есть.

0

Другие решения

Ты можешь использовать wp_get_attachment_image тоже, который даст вам img HTML-тег с alt приписывать. Тем не менее, вы были правы, если вы хотите получить значение самостоятельно, вы должны использовать get_post_meta, На самом деле wp_get_attachment_image Функция делает то же самое для доступа к этим данным.

$default_attr = array(
'src'   => $src,
'class' => "attachment-$size_class size-$size_class",
'alt'   => trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )), // Use Alt field first
);
0