Media: In wp_read_image_metadata()
, include IPTC Keywords when available in $meta
.
Adds unit test. Props swissspidy, dbru, SteveHoneyNZ. Fixes #33772. git-svn-id: https://develop.svn.wordpress.org/trunk@34374 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
1352d3473a
commit
70b90490fd
@ -277,6 +277,7 @@ function wp_read_image_metadata( $file ) {
|
||||
'shutter_speed' => 0,
|
||||
'title' => '',
|
||||
'orientation' => 0,
|
||||
'keywords' => array(),
|
||||
);
|
||||
|
||||
/*
|
||||
@ -325,6 +326,10 @@ function wp_read_image_metadata( $file ) {
|
||||
|
||||
if ( ! empty( $iptc['2#116'][0] ) ) // copyright
|
||||
$meta['copyright'] = trim( $iptc['2#116'][0] );
|
||||
|
||||
if ( ! empty( $iptc['2#025'][0] ) ) { // keywords array
|
||||
$meta['keywords'] = array_values( $iptc['2#025'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -410,12 +415,14 @@ function wp_read_image_metadata( $file ) {
|
||||
* Filter the array of meta data read from an image's exif data.
|
||||
*
|
||||
* @since 2.5.0
|
||||
* @since 4.4.0 The `$iptc` parameter was added.
|
||||
*
|
||||
* @param array $meta Image meta data.
|
||||
* @param string $file Path to image file.
|
||||
* @param int $sourceImageType Type of image.
|
||||
* @param array $iptc IPTC data.
|
||||
*/
|
||||
return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType );
|
||||
return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType, $iptc );
|
||||
|
||||
}
|
||||
|
||||
|
@ -138,4 +138,26 @@ class Tests_Image_Meta extends WP_UnitTestCase {
|
||||
$out = wp_read_image_metadata(DIR_TESTDATA.'/images/404_image.png');
|
||||
$this->assertFalse($out);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ticket 33772
|
||||
*/
|
||||
public function test_exif_keywords() {
|
||||
$out = wp_read_image_metadata(DIR_TESTDATA.'/images/33772.jpg');
|
||||
|
||||
$this->assertEquals( '8', $out['aperture'] );
|
||||
$this->assertEquals( 'Photoshop Author', $out['credit'] );
|
||||
$this->assertEquals( 'DMC-LX2', $out['camera'] );
|
||||
$this->assertEquals( 'Photoshop Description', $out['caption'] );
|
||||
$this->assertEquals( 1306315327, $out['created_timestamp'] );
|
||||
$this->assertEquals( 'Photoshop Copyrright Notice', $out['copyright'] );
|
||||
$this->assertEquals( '6.3', $out['focal_length'] );
|
||||
$this->assertEquals( '100', $out['iso'] );
|
||||
$this->assertEquals( '0.0025', $out['shutter_speed'] );
|
||||
$this->assertEquals( 'Photoshop Document Ttitle', $out['title'] );
|
||||
$this->assertEquals( 1, $out['orientation']);
|
||||
$this->assertEquals( array( 'beach', 'baywatch', 'LA', 'sunset' ), $out['keywords'] );
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user