web-dev-qa-db-fra.com

obtenir des images en pièce jointe src et ajouter des classes

J'ai des messages dont chacun contient 4 images jointes. Ce que j'essaye de faire dans mon single.php, c'est que toutes les 4 images soient capables d’ajouter différentes classes à chaque image.

<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"/>

voici ce que j’ai essayé, mais j’obtiens un tableau au lieu d’obtenir le 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' ); ?>"/>

quelqu'un peut-il m'aider avec ça ?

merci

8
user2882154

Si vous souhaitez uniquement ajouter une classe supplémentaire, vous devez utiliser wp_get_attachment_image. Il a peu de paramètres supplémentaires, et le dernier est utilisé pour définir les noms de classe.

Exemple d'utilisation:

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

Le principal avantage de cette approche est que vous obtiendrez gratuitement l’ensemble des attributs srcset.

12
Ionut Staicu

wp_get_attachment_image_src retourne un tableau avec 3 éléments; l'URL de l'image, la largeur et la hauteur. Vous devez faire écho au premier index du résultat.

En fait, vous pouvez alléger un peu votre code en utilisant une boucle 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] . '" />';
}
0
TheDeadMedic