WordPress.org

Make WordPress Core

Changeset 34374


Ignore:
Timestamp:
09/22/2015 04:18:02 AM (5 years ago)
Author:
wonderboymusic
Message:

Media: In wp_read_image_metadata(), include IPTC Keywords when available in $meta.

Adds unit test.

Props swissspidy, dbru, SteveHoneyNZ.
Fixes #33772.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/image.php

    r34007 r34374  
    278278        'title' => '',
    279279        'orientation' => 0,
     280        'keywords' => array(),
    280281    );
    281282
     
    326327            if ( ! empty( $iptc['2#116'][0] ) ) // copyright
    327328                $meta['copyright'] = trim( $iptc['2#116'][0] );
     329
     330            if ( ! empty( $iptc['2#025'][0] ) ) { // keywords array
     331                $meta['keywords'] = array_values( $iptc['2#025'] );
     332            }
    328333         }
    329334    }
     
    411416     *
    412417     * @since 2.5.0
     418     * @since 4.4.0 The `$iptc` parameter was added.
    413419     *
    414420     * @param array  $meta            Image meta data.
    415421     * @param string $file            Path to image file.
    416422     * @param int    $sourceImageType Type of image.
    417      */
    418     return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType );
     423     * @param array  $iptc            IPTC data.
     424     */
     425    return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType, $iptc );
    419426
    420427}
  • trunk/tests/phpunit/tests/image/meta.php

    r29789 r34374  
    139139        $this->assertFalse($out);
    140140    }
     141
     142
     143    /**
     144     * @ticket 33772
     145     */
     146    public function test_exif_keywords() {
     147        $out = wp_read_image_metadata(DIR_TESTDATA.'/images/33772.jpg');
     148
     149        $this->assertEquals( '8', $out['aperture'] );
     150        $this->assertEquals( 'Photoshop Author', $out['credit'] );
     151        $this->assertEquals( 'DMC-LX2', $out['camera'] );
     152        $this->assertEquals( 'Photoshop Description', $out['caption'] );
     153        $this->assertEquals( 1306315327, $out['created_timestamp'] );
     154        $this->assertEquals( 'Photoshop Copyrright Notice', $out['copyright'] );
     155        $this->assertEquals( '6.3', $out['focal_length'] );
     156        $this->assertEquals( '100', $out['iso'] );
     157        $this->assertEquals( '0.0025', $out['shutter_speed'] );
     158        $this->assertEquals( 'Photoshop Document Ttitle', $out['title'] );
     159        $this->assertEquals( 1, $out['orientation']);
     160        $this->assertEquals( array( 'beach', 'baywatch', 'LA', 'sunset' ), $out['keywords'] );
     161    }
     162
    141163}
Note: See TracChangeset for help on using the changeset viewer.