The image_add_caption_text WordPress PHP Filter allows you to modify the caption text of an image before it’s displayed.
Usage
add_filter( 'image_add_caption_text', 'your_custom_function', 10, 2 ); function your_custom_function( $caption, $id ) { // your custom code here return $caption; }
Parameters
$caption
(string): The original caption text.$id
(int): The attachment ID.
More information
See WordPress Developer Resources: image_add_caption_text
Examples
Add a Copyright Notice to Image Captions
Add a copyright notice to image captions, preserving the original caption text.
add_filter( 'image_add_caption_text', 'add_copyright_notice', 10, 2 ); function add_copyright_notice( $caption, $id ) { $copyright = ' © ' . date('Y') . ' Your Company Name.'; return $caption . $copyright; }
Remove Special Characters from Captions
Remove special characters from image captions to improve accessibility.
add_filter( 'image_add_caption_text', 'remove_special_characters', 10, 2 ); function remove_special_characters( $caption, $id ) { $clean_caption = preg_replace( '/[^a-zA-Z0-9\s]/', '', $caption ); return $clean_caption; }
Add Image File Name as Caption
If the caption is empty, use the image file name as the caption.
add_filter( 'image_add_caption_text', 'use_image_filename', 10, 2 ); function use_image_filename( $caption, $id ) { if ( empty( $caption ) ) { $attachment = get_post( $id ); $caption = $attachment->post_title; } return $caption; }
Add Alt Text as Caption
If the caption is empty, use the image alt text as the caption.
add_filter( 'image_add_caption_text', 'use_image_alt_text', 10, 2 ); function use_image_alt_text( $caption, $id ) { if ( empty( $caption ) ) { $caption = get_post_meta( $id, '_wp_attachment_image_alt', true ); } return $caption; }
Add Custom Prefix to Image Captions
Add a custom prefix to all image captions.
add_filter( 'image_add_caption_text', 'add_custom_prefix', 10, 2 ); function add_custom_prefix( $caption, $id ) { $prefix = 'Image: '; return $prefix . $caption; }