replace wp_get_attachment_image with my own function

How can I replace wp_get_attachment_image() function without changing the core files. The function doesnt have an action hook or a filter hook.

What I am trying to achieve:

for lazyload plugin output the image html like this:

<img width="150" height="150" data-src="http://localhost/yxz/wp-content/uploads/2010/06/calliope.slide_-150x150.jpg" class="attachment-thumbnail" alt="calliope.slide" src="http://localhost/yxz/wp-content/uploads/blank.png">

instead of this:

<img width="150" height="150" src="http://localhost/yxz/wp-content/uploads/2010/06/calliope.slide_-150x150.jpg" class="attachment-thumbnail" alt="calliope.slide">

Solutions Collecting From Web of "replace wp_get_attachment_image with my own function"

There is a filter, wp_get_attachment_image_attributes, for the image attributes– a well designed one too.

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

That will add the data-src attribute. That looks like what you need. You could add more attributes, or alter the existing onese, if you need.

You can create another function in your functions.php file and then use it instead of wp_get_attachment_image().