Tidy Image Titles on Upload
Turns file-name titles like "IMG_2041-sunset_beach-final" into readable ones like "Sunset beach final" when images are uploaded, so the Media Library is easier to search.
Opens WPIDE on
Code
add_action( 'add_attachment', function ( $attachment_id ) {
if ( ! wp_attachment_is_image( $attachment_id ) ) {
return;
}
$title = (string) get_post_field( 'post_title', $attachment_id );
if ( ! preg_match( '/[_\-]/', $title ) ) {
return;
}
$clean = preg_replace( '/\b(img|dsc|dscn|dcim|pxl|image|photo|screenshot)[\s_\-]*\d+\b/i', '', $title );
$clean = trim( preg_replace( '/[\s_\-]+/', ' ', $clean ) );
if ( '' === $clean || $clean === $title ) {
return;
}
wp_update_post( array(
'ID' => $attachment_id,
'post_title' => ucfirst( $clean ),
) );
} );
Notes
Only titles that contain dashes or underscores are changed; titles read from the photo's own metadata stay as they are.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.