Получение src вложенных изображений и добавление классов

15 янв. 2015 г., 15:51:14
Просмотры: 20.7K
Голосов: 8

У меня есть записи, каждая из которых содержит 4 прикрепленных изображения. В файле single.php я пытаюсь получить src всех 4 изображений, чтобы иметь возможность добавить разные классы к каждому изображению.

<img class="image_1 no_lazy" src="src первого прикрепленного изображения"/>
<img class="image_2" src="src второго прикрепленного изображения"/>
<img class="image_3" src="src третьего прикрепленного изображения"/>
<img class="image_4" src="src четвертого прикрепленного изображения"/>

Вот что я пробовал, но я получаю массив вместо получения src... Думаю, я очень близок к решению, но не могу понять, что делаю неправильно...

<?php
  global $post;
  $args = array( 
    'post_parent' => $post->ID, 
    'post_type' => 'attachment', 
    'post_mime_type' => 'image', 
    'orderby' => 'menu_order', 
    'order' => 'ASC', 
    'numberposts' => 4 );
   $images = get_posts($args); ?>

<img class="image_1 no_lazy" src="<?php  echo wp_get_attachment_image_src( $images[0]->ID, 'full' )[0]; ?>"/>
<img class="image_2" src="<?php  echo wp_get_attachment_image_src( $images[1]->ID, 'full' )[0]; ?>"/>
<img class="image_3" src="<?php  echo wp_get_attachment_image_src( $images[2]->ID, 'full' )[0]; ?>"/>
<img class="image_4" src="<?php  echo wp_get_attachment_image_src( $images[3]->ID, 'full' )[0]; ?>"/>

Может кто-нибудь помочь мне с этим?

Спасибо

0
Все ответы на вопрос 2
0
13

Если вам нужно просто добавить дополнительный класс, то следует использовать функцию wp_get_attachment_image. У неё есть несколько дополнительных параметров, и последний как раз предназначен для указания классов.

Пример использования:

<?php echo wp_get_attachment_image( get_the_ID(), 'thumbnail', "", ["class" => "my-custom-class"] ); ?>

Главное преимущество этого подхода в том, что вы автоматически получаете все атрибуты srcset без дополнительных усилий.

21 авг. 2016 г. 18:25:36
1

Функция wp_get_attachment_image_src возвращает массив из 3 элементов: URL изображения, ширину и высоту. Вам нужно вывести первый элемент результата.

Фактически, вы можете сделать код более лаконичным, используя цикл foreach:

foreach ( $images as $i => $image ) {
    $src = wp_get_attachment_image_src( $image->ID, 'full' );

    echo '<img class="image_' . ++$i;
    if ( $i === 1 )
        echo ' no_lazy';
    echo '" src="' . $src[0] . '" />';
}
15 янв. 2015 г. 18:32:33
Комментарии

если вам нужен только URL, вы можете использовать wp_get_attachment_image_url()

iantsch iantsch
14 мар. 2016 г. 19:58:32