The attachment_innerHTML WordPress PHP filter allows you to modify the HTML content of an attachment displayed on your website.
Usage
add_filter('attachment_innerHTML', 'your_custom_function_name');
function your_custom_function_name($content) {
// your custom code here
return $content;
}
Parameters
$content(string) – The HTML content of the attachment that you can modify.
More information
See WordPress Developer Resources: attachment_innerHTML
Examples
Add a custom CSS class to attachment images
Add a custom CSS class to images in the attachment content.
add_filter('attachment_innerHTML', 'add_custom_css_class_to_attachment_images');
function add_custom_css_class_to_attachment_images($content) {
$content = str_replace('<img ', '<img class="custom-class" ', $content);
return $content;
}
Wrap attachment images in a div
Wrap images in the attachment content with a div.
add_filter('attachment_innerHTML', 'wrap_attachment_images_in_div');
function wrap_attachment_images_in_div($content) {
$content = preg_replace('/(<img[^>]+>)/', '<div class="image-wrapper">$1</div>', $content);
return $content;
}
Add a caption to attachment images
Add a caption to images in the attachment content.
add_filter('attachment_innerHTML', 'add_caption_to_attachment_images');
function add_caption_to_attachment_images($content) {
$content = preg_replace_callback('/(<img[^>]+alt="([^"]*)"[^>]*>)/', function ($matches) {
return $matches[1] . '<div class="image-caption">' . esc_html($matches[2]) . '</div>';
}, $content);
return $content;
}
Remove all attachment images
Remove all images from the attachment content.
add_filter('attachment_innerHTML', 'remove_attachment_images');
function remove_attachment_images($content) {
$content = preg_replace('/<img[^>]+\>/', '', $content);
return $content;
}
Replace attachment images with a placeholder
Replace all images in the attachment content with a placeholder image.
add_filter('attachment_innerHTML', 'replace_attachment_images_with_placeholder');
function replace_attachment_images_with_placeholder($content) {
$placeholder_url = 'https://example.com/placeholder.jpg';
$content = preg_replace('/(<img[^>]+src=")[^"]*("[^>]*>)/', '$1' . $placeholder_url . '$2', $content);
return $content;
}