それぞれ4つの添付画像が含まれる投稿があります。私は私のsingle.phpでやろうとしているのは、すべての4つの画像srcを取得して各画像に異なるクラスを追加できるようにすることです。
<img class="image_1 no_lazy" src="first attached image src"/>
<img class="image_2" src="second attached image src"/>
<img class="image_3" src="third attached image src"/>
<img class="image_4" src="fourth attached image 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' ); ?>"/>
<img class="image_2" src="<?php echo wp_get_attachment_image_src( $images[1]->ID, 'full' ); ?>"/>
<img class="image_3" src="<?php echo wp_get_attachment_image_src( $images[2]->ID, 'full' ); ?>"/>
<img class="image_4" src="<?php echo wp_get_attachment_image_src( $images[3]->ID, 'full' ); ?>"/>
誰かがこれを手伝ってくれる?
ありがとう
追加のクラスを追加するだけの場合は、wp_get_attachment_image
を使用する必要があります。追加のパラメータはほとんどなく、最後のパラメータはクラス名の設定に使用されます。
使用例
<?php echo wp_get_attachment_image( get_the_ID(), 'thumbnail', "", ["class" => "my-custom-class"] ); ?>
この方法の主な利点は、srcset
属性全体を無料で入手できるということです。
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] . '" />';
}