The get_image_tag WordPress PHP filter allows you to modify the HTML content of an image tag before it’s displayed on the front-end of your website.
Usage
add_filter('get_image_tag', 'your_custom_function', 10, 6); function your_custom_function($html, $id, $alt, $title, $align, $size) { // your custom code here return $html; }
Parameters
$html
(string) – HTML content for the image.$id
(int) – Attachment ID.$alt
(string) – Image description for the alt attribute.$title
(string) – Image description for the title attribute.$align
(string) – Part of the class name for aligning the image.$size
(string|int[]) – Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
More information
See WordPress Developer Resources: get_image_tag
Examples
Add custom CSS class to image tag
This code adds a custom CSS class my-custom-class
to the image tag.
add_filter('get_image_tag', 'add_custom_class_to_image', 10, 6); function add_custom_class_to_image($html, $id, $alt, $title, $align, $size) { $html = str_replace('<img', '<img class="my-custom-class"', $html); return $html; }
Add data attribute to image tag
This code adds a custom data attribute data-custom-attribute
with a value custom-value
to the image tag.
add_filter('get_image_tag', 'add_data_attribute_to_image', 10, 6); function add_data_attribute_to_image($html, $id, $alt, $title, $align, $size) { $html = str_replace('<img', '<img data-custom-attribute="custom-value"', $html); return $html; }
Remove title attribute from image tag
This code removes the title attribute from the image tag.
add_filter('get_image_tag', 'remove_title_attribute', 10, 6); function remove_title_attribute($html, $id, $alt, $title, $align, $size) { $html = preg_replace('/title="[^"]+"/', '', $html); return $html; }
Modify alt attribute text
This code modifies the alt attribute text by appending custom text to it.
add_filter('get_image_tag', 'modify_alt_text', 10, 6); function modify_alt_text($html, $id, $alt, $title, $align, $size) { $custom_text = ' - Custom Text'; $html = str_replace('alt="'.$alt.'"', 'alt="'.$alt.$custom_text.'"', $html); return $html; }
Add lazy-loading to image tag
This code adds lazy-loading to the image tag using loading="lazy"
attribute.
add_filter('get_image_tag', 'add_lazy_loading', 10, 6); function add_lazy_loading($html, $id, $alt, $title, $align, $size) { $html = str_replace('<img', '<img loading="lazy"', $html); return $html; }