我正在尝试使用以下代码延迟加载正在检索的图像:
<?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或者用data-original替换它?
答案 0 :(得分:0)
您可以改用wp_get_attachment_image_src
。它返回图像数据而不回显它,使构建标记变得更容易。
这将是这样的:
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;
希望它有所帮助!