- $caption = str_replace( array( '>', '<', '"', "'" ),
- array( '>', '<', '"', ''' ),
- $caption
- );
+ $caption = str_replace( array("\r\n", "\r"), "\n", $caption);
+ $caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
+ // convert any remaining line breaks to <br>
+ $caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption );