ottenere immagini di allegati src e aggiungere classi


8

Ho post in cui ognuno contiene 4 immagini allegate. quello che sto cercando di fare nel mio single.php è ottenere tutte e 4 le immagini src come abble per aggiungere classi diverse a ciascuna immagine.

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

ecco quello che ho provato, ma ottengo un array invece di ottenere l'src ... Penso di essere davvero vicino alla soluzione, ma non riesco a scoprire cosa sto facendo di sbagliato ...

<?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' ); ?>"/>

qualcuno può aiutarmi con questo?

Grazie

Risposte:


13

Se vuoi solo aggiungere una classe extra, allora dovresti usare wp_get_attachment_image. Ha alcuni parametri extra e l'ultimo è usato per impostare i nomi delle classi.

Esempio di utilizzo:

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

Il vantaggio principale di questo approccio è che otterrai anche tutti gli srcsetattributi gratuitamente.


0

wp_get_attachment_image_srcrestituisce un array con 3 elementi; l'URL dell'immagine, la larghezza e l'altezza. Devi fare eco al primo indice del risultato.

In effetti, puoi rendere il tuo codice un po 'più snello usando un foreachciclo:

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] . '" />';
}

se hai solo bisogno dell'URL che puoi usarewp_get_attachment_image_url()
iantsch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.