获取附件图像src并添加类


8

我有一些帖子,每个帖子包含4个附件图像。我要在我的single.php中执行的操作是使所有4个图像src都无法向每个图像添加不同的类。

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

这是我尝试过的方法,但是我得到的是数组而不是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' ); ?>"/>

有人可以帮我吗?

谢谢

Answers:


13

如果您只想添加一个额外的类,则应使用wp_get_attachment_image。它没有几个额外的参数,最后一个用于设置类名。

用法示例:

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

这种方法的主要优点是您还将srcset免费获得整个属性。


0

wp_get_attachment_image_src返回一个包含3个元素的数组;图片网址,宽度和高度。您需要回显结果的第一个索引。

实际上,可以使用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] . '" />';
}

如果您只需要URL,就可以使用wp_get_attachment_image_url()
iantsch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.