nhận hình ảnh đính kèm src và thêm các lớp


8

Tôi có bài viết mà mỗi bài chứa 4 hình ảnh đính kèm. những gì tôi đang cố gắng thực hiện trong tệp.php của mình là để có được tất cả 4 hình ảnh src để có thể thêm các lớp khác nhau vào mỗi hình ảnh.

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

Đây là những gì tôi đã thử, nhưng tôi nhận được một mảng thay vì nhận src ... Tôi nghĩ rằng tôi thực sự gần với giải pháp, nhưng tôi không thể tìm ra những gì tôi đang làm sai ...

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

Ai có thể giúp tôi với điều này ?

cảm ơn

Câu trả lời:


13

Nếu bạn chỉ muốn thêm một lớp học thêm, thì bạn nên sử dụng wp_get_attachment_image. Nó có một vài thông số bổ sung và cái cuối cùng được sử dụng để đặt tên lớp.

Sử dụng mẫu:

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

Ưu điểm chính của aproach này là bạn cũng sẽ nhận được toàn bộ srcsetcác thuộc tính miễn phí.


0

wp_get_attachment_image_srctrả về một mảng có 3 phần tử; URL hình ảnh, chiều rộng và chiều cao. Bạn cần lặp lại chỉ số đầu tiên của kết quả.

Trong thực tế, bạn có thể làm cho mã của mình gọn hơn một chút bằng cách sử dụng một foreachvòng lặp:

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

nếu bạn chỉ cần URL bạn có thể sử dụngwp_get_attachment_image_url()
iantsch 14/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.