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,
|
'shutter_speed' => 0,
|
||||||
'title' => '',
|
'title' => '',
|
||||||
'orientation' => 0,
|
'orientation' => 0,
|
||||||
|
'keywords' => array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -325,6 +326,10 @@ function wp_read_image_metadata( $file ) {
|
|||||||
|
|
||||||
if ( ! empty( $iptc['2#116'][0] ) ) // copyright
|
if ( ! empty( $iptc['2#116'][0] ) ) // copyright
|
||||||
$meta['copyright'] = trim( $iptc['2#116'][0] );
|
$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.
|
* Filter the array of meta data read from an image's exif data.
|
||||||
*
|
*
|
||||||
* @since 2.5.0
|
* @since 2.5.0
|
||||||
|
* @since 4.4.0 The `$iptc` parameter was added.
|
||||||
*
|
*
|
||||||
* @param array $meta Image meta data.
|
* @param array $meta Image meta data.
|
||||||
* @param string $file Path to image file.
|
* @param string $file Path to image file.
|
||||||
* @param int $sourceImageType Type of image.
|
* @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');
|
$out = wp_read_image_metadata(DIR_TESTDATA.'/images/404_image.png');
|
||||||
$this->assertFalse($out);
|
$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