Using the filter wp_get_attachment_image_attributes I'm able, for example, to add an attribute to image attachments:

function my_filter( $attr, $attachment, $size )
    $attr['data-custom'] = 'hello';

    return $attr;
add_filter( 'wp_get_attachment_image_attributes', 'my_filter', 10, 3 );

However this filter does not affects imgs in posts.

I already managed to do this with image_send_to_editor filter, but this way the attributes become "hard-coded" into the post's source so I'm not satisfied with this approach.

Is there a way to add/edit posts images' attributes dinamically as the imgs are rendered into the page source?

In other words, is there a way to extend wp_get_attachment_image_attributes to images in posts?

  • Did you try by filtering the_content for img tag? – Fayaz Jan 28 '17 at 13:38
  • At the end (see my answer) I ended filtering the_content. But I identified images via string parsing. Is there a way to get and edit just imgs ? – Paolo Jan 28 '17 at 13:43
  • Another approach is to add a new button to the editor that opens the media window and inserts your own custom shortcode for images. You can then insert whatever markup you want when the_content is rendered and your shortcode function executes. – Milo Jan 28 '17 at 16:49

There is no such filter to do that directly.

The only way is intercept the post's content and modify it:

add_filter( 'the_content', 'FilterImages', 0 );
function FilterImages( $content )
    // parse $content looking for <img .... />
    // modify $content if it needs to be modified

    return $content;

I managed to do what I needed to do with some string manipulation.

I guess also DOMElement can be used if the content manipulation task is not trivial.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.