The ‘prepend_attachment’ is a WordPress PHP filter that allows you to modify the attachment markup before it is added to the post content.
Usage
To use this filter, you need to create a function and hook it to the 'prepend_attachment'
filter, like this:
function your_function_name( $attachment_markup ) { // Your code here return $attachment_markup; } add_filter( 'prepend_attachment', 'your_function_name' );
Parameters
$p
(string): The attachment HTML output.
Examples
Add a custom CSS class to the attachment markup
function add_custom_class( $attachment_markup ) { return str_replace( '<a ', '<a class="custom-class" ', $attachment_markup ); } add_filter( 'prepend_attachment', 'add_custom_class' );
This code adds a custom CSS class named “custom-class” to the attachment markup.
Wrap the attachment in a div
function wrap_attachment_div( $attachment_markup ) { return '<div class="attachment-wrapper">' . $attachment_markup . '</div>'; } add_filter( 'prepend_attachment', 'wrap_attachment_div' );
This code wraps the attachment markup in a div with the class “attachment-wrapper”.
Add a download link below the attachment
function add_download_link( $attachment_markup ) { $download_link = '<a href="' . wp_get_attachment_url() . '" download>Download</a>'; return $attachment_markup . $download_link; } add_filter( 'prepend_attachment', 'add_download_link' );
This code adds a download link below the attachment markup.
Remove the link from the attachment markup
function remove_attachment_link( $attachment_markup ) { return preg_replace( '/<a[^>]*>/', '', $attachment_markup ); } add_filter( 'prepend_attachment', 'remove_attachment_link' );
This code removes the link from the attachment markup, leaving only the image.
Change the attachment markup to a responsive image
function responsive_attachment( $attachment_markup ) { $attachment_id = get_post_thumbnail_id(); $srcset = wp_get_attachment_image_srcset( $attachment_id ); return preg_replace( '/<img([^>]*)>/', '<img$1 srcset="' . $srcset . '">', $attachment_markup ); } add_filter( 'prepend_attachment', 'responsive_attachment' );
This code changes the attachment markup to include the srcset
attribute, making the image responsive.