从 wp_get_attachment_image 中删除 src

Remove src from wp_get_attachment_image

我正在尝试使用以下代码延迟加载正在检索的图像:

<?php $args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'posts_per_page' => -1,
'orderby'=> 'menu_order',
'order'=>'ASC', 
'post_parent' => $post->ID,
);
$images = get_posts( $args );
foreach($images as $image):
echo wp_get_attachment_image($image->ID, 'large');
endforeach;
?>

为了使用延迟加载器,我需要向 img 添加一个 data-src 属性,我使用以下代码完成了该属性:

function alter_att_attributes_wpse_102079($attr) {
$attr['data-original'] = $attr['src'];
return $attr;
}
add_filter( 'wp_get_attachment_image_attributes',
'alter_att_attributes_wpse_102079');

但是这很好用,即使图像不在视口中,图像仍在加载,我相信这是因为图像上仍然有 src 标签。

是否有任何方法可以删除 src 或将其替换为原始数据?

您可以改用 wp_get_attachment_image_src。它 returns 图像数据而不回显它,使构建标签更容易。

会是这样的:

foreach($images as $image):
    $img = wp_get_attachment_image_src($image->ID, 'large');
    echo '<img src="" data-original="'.$img[0].'" width="'.$img[1].'" height="'.$img[2].'" >';
endforeach;

希望对您有所帮助!