Obtener el src de imágenes adjuntas y agregar clases
Tengo entradas que contienen 4 imágenes adjuntas cada una. Lo que estoy tratando de hacer en mi single.php es obtener el src de las 4 imágenes para poder agregar diferentes clases a cada imagen.
<img class="image_1 no_lazy" src="src de la primera imagen adjunta"/>
<img class="image_2" src="src de la segunda imagen adjunta"/>
<img class="image_3" src="src de la tercera imagen adjunta"/>
<img class="image_4" src="src de la cuarta imagen adjunta"/>
Esto es lo que he intentado, pero obtengo un array en lugar de obtener el src... Creo que estoy muy cerca de la solución, pero no puedo encontrar qué estoy haciendo mal...
<?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' ); ?>"/>
¿Alguien puede ayudarme con esto?
Gracias
Si solo quieres añadir una clase extra, entonces deberías usar wp_get_attachment_image
. Tiene pocos parámetros adicionales, y el último se usa para establecer nombres de clase.
Ejemplo de uso:
<?php echo wp_get_attachment_image( get_the_ID(), 'thumbnail', "", ["class" => "mi-clase-personalizada"] ); ?>
La principal ventaja de este enfoque es que también obtendrás automáticamente todos los atributos srcset
.

wp_get_attachment_image_src
devuelve un array con 3 elementos: la URL de la imagen, el ancho y el alto. Necesitas imprimir el primer índice del resultado.
De hecho, puedes hacer tu código un poco más limpio usando un bucle 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] . '" />';
}
