# Use a Photo's Embedded Description as Its Alt Text

> Fills the alt text of newly uploaded photos from the description or headline embedded by cameras, photo agencies and Lightroom (IPTC data), when it exists and no alt text is set.

- Type: PHP
- Runs: Run everywhere
- Category: [Media](https://wpide.com/library/category/media/)
- Tags: alt-text, iptc, uploads
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/media-alt-from-photo-description/

## Code

```php
add_filter( 'wp_generate_attachment_metadata', function ( $metadata, $attachment_id, $context = 'create' ) {
    if ( 'create' !== $context || ! wp_attachment_is_image( $attachment_id ) || '' !== (string) get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) {
        return $metadata;
    }

    $info = $metadata['image_meta'] ?? array();
    $text = '';
    foreach ( array( 'caption', 'title' ) as $field ) {
        if ( ! empty( $info[ $field ] ) && ! preg_match( '/^(DSC|IMG|DCIM|P\d{6,})[_-]?\d*/i', $info[ $field ] ) ) {
            $text = $info[ $field ];
            break;
        }
    }

    if ( '' !== trim( $text ) ) {
        update_post_meta( $attachment_id, '_wp_attachment_image_alt', sanitize_text_field( wp_trim_words( $text, 25, '' ) ) );
    }

    return $metadata;
}, 10, 3 );
```

## Notes

Agency captions can be long; the alt text is trimmed to 25 words. Photos without embedded text are left for you to describe.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Use a Photo's Embedded Description as Its Alt Text" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
