Ich habe Posts, deren jedes 4 angehängte Bilder enthält. Was ich in meiner single.php versuche, ist, alle 4 Bilder src in die Lage zu versetzen, jedem Bild eine andere Klasse hinzuzufügen.
<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"/>
folgendes habe ich versucht, aber ich erhalte ein Array, anstatt den src zu erhalten ... Ich glaube, ich bin der Lösung sehr nahe, kann aber nicht herausfinden, was ich falsch mache ...
<?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' ); ?>"/>
kann mir jemand dabei helfen?
vielen Dank
Wenn Sie nur eine zusätzliche Klasse hinzufügen möchten, sollten Sie wp_get_attachment_image
verwenden. Es gibt einige zusätzliche Parameter, und der letzte wird zum Festlegen von Klassennamen verwendet.
Beispielnutzung:
<?php echo wp_get_attachment_image( get_the_ID(), 'thumbnail', "", ["class" => "my-custom-class"] ); ?>
Der Hauptvorteil dieses Ansatzes besteht darin, dass Sie auch die gesamten Attribute srcset
kostenlos erhalten.
wp_get_attachment_image_src
gibt ein Array mit 3 Elementen zurück; die Bild-URL, die Breite und die Höhe. Sie müssen den ersten Index des Ergebnisses wiederholen.
Tatsächlich können Sie Ihren Code mit einer foreach
-Schleife etwas schlanker gestalten:
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] . '" />';
}