Obținerea src-ului imaginilor atașate și adăugarea claselor

15 ian. 2015, 15:51:14
Vizualizări: 20.7K
Voturi: 8

Am postări care conțin fiecare câte 4 imagini atașate. Ceea ce încerc să fac în fișierul meu single.php este să obțin src-ul tuturor celor 4 imagini pentru a putea adăuga clase diferite fiecărei imagini.

<img class="image_1 no_lazy" src="src-ul primei imagini atașate"/>
<img class="image_2" src="src-ul celei de-a doua imagini atașate"/>
<img class="image_3" src="src-ul celei de-a treia imagini atașate"/>
<img class="image_4" src="src-ul celei de-a patra imagini atașate"/>

Iată ce am încercat, dar primesc un array în loc să obțin src-ul... Cred că sunt foarte aproape de soluție, dar nu-mi dau seama ce fac greșit...

<?php
  global $post;
  $args = array( 
    'post_parent' => $post->ID, 
    'post_type' => 'attachment', 
    'post_mime_type' => 'image', 
    'orderby' => 'menu_order', 
    'order' => 'ASC', 
    'numberposts' => 4 ); // Argumentele pentru a obține 4 imagini atașate
   $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' ); ?>"/>

mă poate ajuta cineva cu acest lucru?

mulțumesc

0
Toate răspunsurile la întrebare 2
0
13

Dacă dorești să adaugi doar o clasă suplimentară, atunci ar trebui să folosești wp_get_attachment_image. Această funcție are câțiva parametri suplimentari, iar ultimul este folosit pentru a seta numele claselor.

Exemplu de utilizare:

<?php echo wp_get_attachment_image( get_the_ID(), 'thumbnail', "", ["class" => "clasa-mea-personalizata"] ); ?>

Principalul avantaj al acestei abordări este că vei obține gratuit și toate atributele srcset.

21 aug. 2016 18:25:36
1

wp_get_attachment_image_src returnează un array cu 3 elemente: URL-ul imaginii, lățimea și înălțimea. Trebuie să afișezi primul index din rezultat.

De fapt, poți face codul mai concis folosind o buclă 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] . '" />';
}
15 ian. 2015 18:32:33
Comentarii

dacă ai nevoie doar de URL poți folosi wp_get_attachment_image_url()

iantsch iantsch
14 mar. 2016 19:58:32